我试图学习primefaces,我想显示orderList,当点击一个项目时,使用ajax刷新一个pickList。我的问题是当我点击一个项目时,primefaces不能访问managedBean中的函数。 并且它没有发生任何事情。
我的XHTML:
<p:panel style="width:100%">
<p:panelGrid style="width:100%" columns="3">
<p:panel header="Collaborateurs">
<p:orderList value="#{affectationRolesBean.collaborateursList()}"
var="collaborateur" controlsLocation="none"
itemLabel="#{collaborateur}" itemValue="#{collaborateur}">
<p:ajax event="select" listener="#{affectationRolesBean.onSelect}"
process="@form"/>
</p:orderList>
</p:panel>
<p:pickList style="height:600px" id="pickList" value="#{affectationRolesBean.roles}"
var="role" itemLabel="#{role.libele}" itemValue="role.libele">
<f:facet name="sourceCaption">Roles Non affectés</f:facet>
<f:facet name="targetCaption">Roles Affectés</f:facet>
</p:pickList>
</p:panelGrid>
<p:commandButton value="Affecter"
actionListener="#{affectationRolesBean.affecterRolesToCollaborateur()}" />
</p:panel>
我的managedBean:
public void onSelect(SelectEvent event){
selectedCollaborateurName = event.getObject().toString();
selectedCollaborateur=this.getCollaborateurByName(selectedCollaborateurName);
roles.setSource(roleService.getRolesNotAffected(selectedCollaborateur));
roles.setTarget(selectedCollaborateur.getRoles());
}