1

我使用 primefaces Tree Componemt 作为导航器,它通过基于节点选择的 ajax 调用加载中心/主要内容。当我通过 Eclipse 运行代码时,代码运行良好,但是当我在部署到Google App Engine后尝试相同的操作时,nodeSelect 事件列表器根本不会在 appengine 上调用

菜单.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(托管 Bean)

@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();
        }
    }
}
}

我的项目依赖

  1. Primefaces 3.4
  2. JDK 1.6
  3. JSF 2.0
  4. Appengine SDK 版本 1.7.4
4

1 回答 1

0

通过升级到 3.5,我在 primefaces 的 3.4 版中遇到了问题,我的问题得到了解决。对你来说可能是同样的情况:)

于 2013-06-09T07:21:19.587 回答