在使用使用POJO列表的PrimeFaces组件时,如何编写自定义转换器?我的特殊问题是<p:pickList>
<p:pickList converter="????" value="#{bean.projects}" var="project"
itemLabel="#{project.name}" itemValue="#{project}">
Run Code Online (Sandbox Code Playgroud)
我没有转换器,java.lang.ClassCastException因为JSF使用未转换的java.lang.String提交值设置提交的值.
我使用的是Primefaces 4.0和JSF 2.2.我使用了带转换器的选项列表.问题是arg2我的转换器中没有正确的.它总是说0.我的期望是这是元素的id,我可以从源/目标列表中解析它.有任何想法吗?
我Converter的灵感来自于如何为<p:pickList>编写自定义转换器.
我的领料单声明如下:
<p:pickList value="#{loadingPlaceGroups.pickList}"
style="margin:0" var="loadingPlace"
converter="primeFacesPickListConverter"
itemValue="#{loadingPlace}"
itemLabel="#{loadingPlace.name}#{loadingPlace.location.address.street}#{loadingPlace.location.address.houseNr}#{loadingPlace.location.address.zipCode}#{loadingPlace.location.address.city}"
showSourceFilter="true" showTargetFilter="true"
filterMatchMode="contains"
styleClass="picklist500x350source picklist500x350target">
<f:facet name="sourceCaption">Alle Ladestellen</f:facet>
<f:facet name="targetCaption">Gewählte Ladestellen</f:facet>
<p:column style="border-bottom:1px solid lightgray">
<p:panelGrid>
<p:row>
<p:column style="padding-left:0;font-size:12pt">
<h:outputLabel value="#{loadingPlace.name}"
style="font-weight:bold" />
</p:column>
</p:row>
<p:row>
<p:column style="padding:0">
<h:outputLabel
value="#{loadingPlace.location.address.street} #{loadingPlace.location.address.houseNr}" />
</p:column>
</p:row>
<p:row>
<p:column style="padding:0">
<h:outputLabel
value="#{loadingPlace.location.address.zipCode} #{loadingPlace.location.address.city}" />
</p:column>
</p:row>
</p:panelGrid>
</p:column>
</p:pickList>
Run Code Online (Sandbox Code Playgroud) 我有一个用例,我计划有一个rich:pickList,以便用户可以从列表中选择多个项目.但是,在少数情况下,pickList中的项目数量太大(在hunderd中,有时数以千计),用户滚动整个长度是不实际的.那么,有没有办法在pickList的左侧列表上方有一个搜索框?它应该类似于autoComplete组件,因此pickList中总共有10个项目,这些项目是在搜索框中输入的关键字的最接近的匹配项.
我使用richfaces 4和JSF 2.0.
有谁知道如何冻结primefaces选项列表中的任何行
或者如何使用itemDisabled
使用时是否需要使用转换器pickList?好吧,这是我的代码:
<p:pickList value="#{usuarioBean.listaMembros}" var="#{usuario}" itemLabel="#{usuario.nome}">
<f:facet name="cadastrados">Membros</f:facet>
<f:facet name="equipe">Membros da Equipe</f:facet>
</p:pickList>
Run Code Online (Sandbox Code Playgroud)
我一直得到的是:
java.util.ArrayList无法强制转换为org.primefaces.model.DualListModel