2011-10-28 34 views
6

Vì vậy, tôi đang vật lộn với việc ứng dụng mẫu để hoạt động. Tôi đang sử dụng Primefaces 3.3M4-SNAPSHOT, hồ sơ web JBOSS 7 (CDI và JSF Mojarra).

Tôi có đậu ủng hộ tôi:

@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 của tôi:

 <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> 

Khi tôi chạy ứng dụng của tôi, đây là ngoại lệ tôi nhận được:

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) 

Có ai đi trên cùng một vấn đề như tôi đã làm?

+0

Thiếu thông tin ở đây. Bạn có thể sử dụng nhiều hơn những gì bạn nói. @ViewScoped này đến từ đâu? Seam 3 Khuôn mặt tôi đoán vì bạn có chú thích khá tốt. Lỗi bạn nhận được đề nghị el đang tìm kiếm một tài sản vì vậy hãy thử gọi "getDeleteNode()". Bạn có chắc chắn bạn không phải là một sự xuất hiện của "deleteNode" trong trang JSF? Bạn có thể gửi thông tin đầy đủ hoặc liên kết github không? –

+0

Hi Antoine, theo hiểu biết của tôi nó @Viewscoped là chú thích ee6: http://download.oracle.com/javaee/6/api/javax/faces/bean/ViewScoped.html Tôi không chắc liệu có vẻ như khuôn mặt được sử dụng hay không ra khỏi hộp cho jboss 7. Tôi chỉ đơn giản là cố gắng để tạo ra các ứng dụng mẫu như mô tả trong các showcase tại đây http://www.primefaces.org/showcase-labs/ui/treeTableContextMenu.jsf –

+0

Có @ViewScoped là trong JSF spec nhưng không có trong CDI. Mã bạn đang hiển thị không nhất quán và chỉ hoạt động vì bạn không cần bean này trong chế độ xem và cũng có trong mã yêu cầu. Nếu nó thay đổi ... Nó sẽ không hoạt động. –

Trả lời

5

OK nhận câu trả lời. Nó chỉ ra rằng không gian tên cho primefaces đã thay đổi từ

xmlns:p="http://primefaces.prime.com.tr/ui" 

để

xmlns:p="http://primefaces.org/ui" 

Bằng cách thay đổi tất cả mọi thứ không gian tên làm việc. Wow đó là một điều khó nắm bắt để theo dõi.

+1

Chỉ để tham khảo trong tương lai: Tôi cũng đã thấy lỗi "không có thuộc tính" khi phương thức được gọi đơn giản ném một số ngoại lệ thời gian chạy (con trỏ null) hoặc khi phương thức '@ PostContruct' không thành công, nhưng có lẽ chỉ trong Composite Components; xem thêm [Thành phần hỗn hợp JSF2 ném PropertyNotFoundException cho phương thức hành động] (http://stackoverflow.com/questions/3487489/jsf2-composite-component-throws-propertynotfoundexception-for-action-method) và lỗi [JAVASERVERFACES-1806] (http : //java.net/jira/browse/JAVASERVERFACES-1806). – Arjan

0

Trong trường hợp của tôi, lý do hoàn toàn khác.

tôi sao chép một lớp học bao gồm cả lĩnh vực serialVersionUID:

private static final long serialVersionUID = 5443351151396868724L; 

vì vậy tôi có hai lớp khác nhau và các đối tượng với serialVersionUID cùng và đây là đầu mối của vấn đề.

Các vấn đề liên quan