Java &引用;“未找到财产”;使用PrimeFaces远程命令

Java &引用;“未找到财产”;使用PrimeFaces远程命令,java,jsf,primefaces,Java,Jsf,Primefaces,我正在尝试用更新素数面,我得到了一个javax.el.PropertyNotFoundException:Property'updatePermissions'未找到定义updatePermission属性时的异常 这是我的UI定义文件: <h:form> ... <h:selectOneMenu id="groupsList" value="#{permissionsToGroupsBean.sel

我正在尝试用更新素数面,我得到了一个
javax.el.PropertyNotFoundException:Property'updatePermissions'未找到
定义
updatePermission
属性时的异常

这是我的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"/>
当我访问页面URL时,我得到:

javax.el.PropertyNotFoundException:在类型tld.company.admin.web.bean.PermissionsToGroupsBean上找不到属性'updatePermissions'
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
属性(BeanELResolver.java:279)
getValue(BeanELResolver.java:60)
com.sun.faces.el.DemuxCompositeELResolver.\u 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)

非常感谢您的帮助。

actionListener=“#{permissionsToGroupsBean.updatePermissions}”
I
I不熟悉PrimeFaces的当前版本,但通常
actionListener
属性将返回实现
actionListener
接口的对象。因此,您的表达式将解析为
getUpdatePermissions()`它不存在,因此您将得到该消息

如果添加了该方法,您应该会发现返回值不是
ActionListener
存在另一个问题

标记是否支持
操作
属性?

actionListener=“{permissionsToGroupsBean.updatePermissions}”
I
m不熟悉PrimeFaces的当前版本,但通常
actionListener
属性将返回实现
actionListener
接口的对象。因此,您的表达式将解析为
getUpdatePermissions()`它不存在,因此您将得到该消息

如果添加了该方法,您应该会发现返回值不是
ActionListener
存在另一个问题


标记是否支持
操作
属性?

更新权限(ActionEvent e)?

更新权限(ActionEvent e)?

找到了它。。。问题是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>  -->  

找到了。。。问题是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>  -->  

是的,它确实支持它。但是,根据prime faces文档,在没有属性的情况下也可以执行此操作。同样在这个问题中,您可以看到它在没有action listener属性的情况下完成了。我得到了同样的错误。@Simeon您链接的问题只是说明:
actionListener=“#{bookmarklet.loadImages}”
,这意味着
loadImages
属性将定义actionListener(没有该方法的源链接,因此我只能在这里进行假设)。对于重命名的方法,您得到了相同的错误,这可能表明实际上,解析程序查找返回类型为
ActionListener
(或子类)的name
getUpdatePerissions()
方法。由于该方法不会有这样的返回类型,解析程序仍然找不到它。是的,它确实支持它。但是,根据prime faces文档,在没有属性的情况下也可以执行此操作。同样在这个问题中,您可以看到它在没有action listener属性的情况下完成了。我得到了同样的错误。@Simeon您链接的问题只是说明:
actionListener=“#{bookmarklet.loadImages}”
,这意味着
loadImages
属性将定义actionListener(没有该方法的源链接,因此我只能在这里进行假设)。对于重命名的方法,您得到了相同的错误,这可能表明实际上,解析程序查找返回类型为
ActionListener
(或子类)的name
getUpdatePerissions()
方法。由于该方法不会有这样的返回类型,解析程序仍然找不到它。
public void updatePermissions() {
    getPermissionsPickList().setTarget(getPermissionsForSelectedGroup());
}