【问题标题】:Primefaces ajax listner not Invoked on select Event in Tree ComponentPrimefaces ajax 列表器未在树组件中的选择事件上调用
【发布时间】:2023-04-03 20:08:01
【问题描述】:

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

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(托管 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

【问题讨论】:

  • 尝试删除 immediate="true"。你使用这个顺便说一句的理由是什么?
  • 是的,我删除它再试一次。
  • 我尝试删除它但仍然没有进展
  • 你检查浏览器控制台了吗?
  • @Farnsbert 浏览器控制台中没有任何内容

标签: java google-app-engine jsf-2 primefaces


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-01-21
  • 2014-11-13
  • 2015-08-11
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
  • 2013-05-24
  • 2014-08-06
相关资源
最近更新 更多