Jsf 为什么我的f:selectItems不需要自定义转换器?
我用Java(NetBeans 8.2)开发了一个企业应用程序,它有两个EJB模块和一个基于JSF2.2的web应用程序。该应用程序在我的NetBeans版本中工作,但当我在另一台pc上传输此应用程序并将其部署到那里时,它会显示一些错误。 问题所在的位置如下所示:Jsf 为什么我的f:selectItems不需要自定义转换器?,jsf,jsf-2,Jsf,Jsf 2,我用Java(NetBeans 8.2)开发了一个企业应用程序,它有两个EJB模块和一个基于JSF2.2的web应用程序。该应用程序在我的NetBeans版本中工作,但当我在另一台pc上传输此应用程序并将其部署到那里时,它会显示一些错误。 问题所在的位置如下所示: <h:selectManyListbox class = "selectManyListBox" id="parkiralista" value="#{pregled.odabranaParkir
<h:selectManyListbox class = "selectManyListBox" id="parkiralista" value="#{pregled.odabranaParkiralista}" >
<f:ajax event="valueChange" execute="@this" render="" />
<f:selectItems value="#{pregled.popisParkiralista}"
var="p"
itemLabel="#{p.adresa.concat('; ').concat(p.naziv).concat('; ').concat(p.id.toString())}"
itemValue="#{p}"/>
</h:selectManyListbox>
所以这个itemValue=“#{p}”/>
是Parkiralista类型的对象,我没有任何自定义转换器将其转换回object。即使我没有自定义转换器,这也可以在我的电脑上运行。但当我在另一台pc上传输应用程序并将其部署到那里时,它不起作用,NetBeans显示此错误:java.lang.String无法转换为org.foi.nwtis.ivicelig.ejb.eb.Parkiralista
。所以我的问题是,为什么这在我的第一台电脑上有效,而不是在我的第二台电脑上。新版本的JSF支持带对象和不带转换器的itemLabel吗?
谢谢
新版本的JSF支持带对象和不带转换器的itemLabel吗
没错。自JSF2.3以来,绑定到列表的
组件不需要显式转换器。这是作为规范的一部分实现的
显然,您实际上是在一个环境中运行JavaEE8/JSF2.3,在另一个环境中运行JavaEE7/JSF2.2。这不是开发应用程序的好方法。在所有开发环境中,您都应该按照预期的最低支持版本进行开发
新版本的JSF支持带对象和不带转换器的itemLabel吗
没错。自JSF2.3以来,绑定到列表的
组件不需要显式转换器。这是作为规范的一部分实现的
显然,您实际上是在一个环境中运行JavaEE8/JSF2.3,在另一个环境中运行JavaEE7/JSF2.2。这不是开发应用程序的好方法。在所有开发环境中,您都应该按照预期的最低支持版本进行开发。您确定它可以在一台PC上运行吗?当您选择项目时,您的列表odabranaParkiralista是否真的在没有转换器的情况下得到更新?。itemValue=“#{p}”是definiteley unneccessary,因为这是默认的itemValue。您确定它可以在一台电脑上工作吗?当您选择项目时,您的列表odabranaParkiralista是否真的在没有转换器的情况下得到更新?。itemValue=“#{p}”是definiteley unneccessary,因为这是默认的itemValue。