2013-05-29 3 views
1

노드 선택을 기반으로 ajax 호출을 통해 Center/Main Content를로드하는 탐색기로 primefaces Tree Componemt를 사용하고 있습니다. 코드는 내가 이클립스를 통해 실행하면 잘 작동하지만 난 구글 앱 엔진에 배포 후 같은 시도 할 때 nodeSelect 이벤트의 청취자는 전혀에서 appenginePrimefaces ajax listner가 Tree 구성 요소의 select 이벤트에 호출되지 않습니다.

menu.xhtml

<h:form id="adminForm" styleClass="formStyle"> 
    <p:growl id="adminMessage" showDetail="true" /> 
    <p:tree value="#{adminMenuBean.root}" var="node" 
     selectionMode="single" > 
     <p:ajax event="select" listener="#{adminMenuBean.onNodeSelect}" 
      process="@this" update=":main" dynamic="true"/> 
     <p:treeNode id="adminTreeNode"> 
      <h:outputText value="#{node}" id="lblNode" /> 
     </p:treeNode> 
    </p:tree> 
</h:form> 
에 호출되지 않습니다

AdminMenuBean.java

@ManagedBean(name = "adminMenuBean") 
@SessionScoped 
public class AdminMenuBean implements Serializable { 

private static final long serialVersionUID = 1L; 
private static final Logger log = Logger.getLogger(AdminMenuBean.class 
     .getName()); 

private String name; 
private String caddress; 
private Date dob; 
private Long mobileno; 
private double uniqueno = 0; 

private String navigationUrl = "UserRequest"; 

private TreeNode root; 

public TreeNode getRoot() { 
    return root; 
} 

public AdminMenuBean() { 
    root = new DefaultTreeNode("root", null); 

    TreeNode admin = new DefaultTreeNode("Admin", root); 
    TreeNode UserRequest = new DefaultTreeNode("User Request", admin); 
    TreeNode ManageUser = new DefaultTreeNode("Manage User", admin); 

    TreeNode DocumentManagement = new DefaultTreeNode(
      "Document Management", root); 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getCaddress() { 
    return caddress; 
} 

public void setCaddress(String caddress) { 
    this.caddress = caddress; 
} 

public Date getDob() { 
    return dob; 
} 

public void setDob(Date dob) { 
    this.dob = dob; 
} 

public Long getMobileno() { 
    return mobileno; 
} 

public void setMobileno(Long mobileno) { 
    this.mobileno = mobileno; 
} 

public double getUniqueno() { 
    uniqueno = uniqueno + Math.random(); 
    return uniqueno; 
} 

public void setUniqueno(double uniqueno) { 
    this.uniqueno = uniqueno; 
} 

public String getNavigationUrl() { 
    return navigationUrl; 
} 

public void setNavigationUrl(String navigationUrl) { 
    this.navigationUrl = navigationUrl; 
} 

public void onNodeSelect(NodeSelectEvent event) { 
    log.info("node select"+ navigationUrl); 
    if (event.getTreeNode().getParent().toString() != "root" 
      || event.getTreeNode().getData().toString() == "Document Management") { 
     String url = event.getTreeNode().getData().toString(); 
     try { 
      url = url.replaceAll(" ", ""); 
      System.out.println("url-->" + url); 
      this.setNavigationUrl(url); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
} 

내 프로젝트 Dependenci (Bean을 관리) ES

  1. Primefaces 3.4
  2. JDK 1.6
  3. JSF 2.0
  4. 하는 App Engine SDK 버전 1.7.4 나는 3.5로 업그레이드 나무 와 primefaces의 버전 3.4에서 문제가 있었다
+0

즉시 = "참"을 삭제하십시오. 이 btw를 사용하는 이유는 무엇입니까? – Tankhenk

+0

예. 불량품을 제거하고 다시 시도하십시오. – Holla

+0

나는 그것을 제거했지만 시도가 아직 진행되지 않았다 – Holla

답변

0

내 문제가 해결되었습니다. 같은 경우 일 수도 있습니다.

+0

primefaces 3.5와 3.0에서도 동일하게 시도했지만 성공 없음 아래의 링크에서 앱 엔진 http://kiranhollab.appspot.com/faces/3.xhtml에 업로드 된 동작을 볼 수 있습니다 (이 데모 http://www.primefaces.org/에서 볼 수 있습니다). showcase/ui/treeEvents.jsf) – Holla

관련 문제