使用PrimeFaces RemoteCommand"找不到属性"

Sim*_*eon 1 java jsf primefaces

我正在尝试使用RemoteCommnad更新Prime Faces PickList,并且在定义属性时我收到异常.javax.el.PropertyNotFoundException: Property 'updatePermissions' not foundupdatePermission

这是我的UI定义文件:

<h:form>

              ...           

            <h:selectOneMenu id="groupsList" value="#{permissionsToGroupsBean.selectedGroup}" title="Select Group" onclick="updatePermissions()">
                <f:selectItems value="#{permissionsToGroupsBean.allGroups}" />
            </h:selectOneMenu>

              ....              

            <p:pickList 
                id="permissions" 
                value="#{permissionsToGroupsBean.permissionsPickList}" 
                var="permissionsPickList" 
                itemLabel="#{permissionsPickList}" 
                itemValue="#{permissionsPickList}" />

            ....

        </h:panelGrid>      

        <p:remoteCommand name="updatePermissions" actionListener="#{permissionsToGroupsBean.updatePermissions}" update="permissions"/>
Run Code Online (Sandbox Code Playgroud)

这个应该处理UI的控制器:

public class PermissionsToGroupsBean implements Serializable {

    ...

    public void updatePermissions() {
        getPermissionsPickList().setTarget(getPermissionsForSelectedGroup());
    }
}
Run Code Online (Sandbox Code Playgroud)

当我访问页面URL时,我得到:

javax.el.PropertyNotFoundException: Property 'updatePermissions' not found on type tld.company.admin.web.bean.PermissionsToGroupsBean javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193) javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170) javax.el.BeanELResolver.property(BeanELResolver.java:279) javax.el.BeanELResolver.getValue(BeanELResolver.java:60) com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) org.apache.el.parser.AstValue.getValue(AstValue.java:118) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:214) com.sun.faces.facelets.el.ELText$ELTextComposite.toString(ELText.java:155) com.sun.faces.facelets.compiler.CommentInstruction.write(CommentInstruction.java:77) com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82) com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)

任何帮助非常感谢,谢谢.

Sim*_*eon 5

发现它...问题是Prime Faces由于某种原因没有处理评论......

我在问题中发布了一个注释掉的动作监听器:

<p:remoteCommand name="updatePermissions" actionListener="#{permissionsToGroupsBean.updatePermissions}" update="permissions"/>

        <!-- <p:remoteCommand name="updatePermissions" update="permissions">  
            <f:setPropertyActionListener value="#{selectedPermissions}" target="#{permissionsToGroupsBean.updatePermissions}" />  
        </p:remoteCommand>  -->  
Run Code Online (Sandbox Code Playgroud)

我一删除就行了.

具有void返回类型且没有参数的签名有效:

public void updatePermissions() {
    getPermissionsPickList().setTarget(getPermissionsForSelectedGroup());
}
Run Code Online (Sandbox Code Playgroud)