所以我正在努力让一个示例应用程序工作。我正在使用Primefaces 3.3M4-SNAPSHOT,JBOSS 7网页配置文件(CDI和JSF Mojarra)。
我有我的支持bean:
@Named
@ViewScoped
@URLMapping(id = "viewEditor", pattern = "/editor/e", viewId = "/editor/editor.jsf")
public class ViewEditor implements Serializable {
public void deleteNode() {
selectedNode.getChildren().clear();
selectedNode.getParent().getChildren().remove(selectedNode);
selectedNode.setParent(null);
selectedNode = null;
}
}
我的xhtml:
<p:contextMenu for="docs">
<p:menuitem value="View" update="documentPanel"
icon="ui-icon ui-icon-search" oncomplete="documentDialog.show()" />
<p:menuitem value="Delete"
actionListener="#{viewEditor.deleteNode}" update="docs"
icon="ui-icon ui-icon-close" />
</p:contextMenu>
当我运行我的应用时,这是我得到的例外:
javax.el.ELException: /editor/editor.xhtml: The class 'application.ViewEditor$Proxy$_$$_WeldClientProxy' does not have the property 'deleteNode'.
com.sun.faces.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:94)
com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
有没有人遇到过和我一样的问题?
答案 0 :(得分:5)
好的,得到了答案。事实证明,primefaces的命名空间已从
更改xmlns:p="http://primefaces.prime.com.tr/ui"
到
xmlns:p="http://primefaces.org/ui"
通过更改命名空间一切正常。哇,这是一个难以捉摸的事情。
答案 1 :(得分:0)
就我而言,原因完全不同。
我复制了一个包含serialVersionUID字段的类:
private static final long serialVersionUID = 5443351151396868724L;
所以我有两个不同的类和对象具有相同的serialVersionUID,这就是问题的线索。