gpt4 book ai didi

jsf - 使用 MenuItem 进行 PrimeFaces 导航

转载 作者:行者123 更新时间:2023-12-04 13:52:03 24 4
gpt4 key购买 nike

我有一个像这样的 PrimeFaces 3.4 菜单栏:

<h:form>
<p:menubar>
<p:submenu label="File">
<p:submenu label="New">
<p:menuitem value="Go" id="page1LinkID" action="#{navBean.goNav}">
<f:param id="page1ParamID" name="pageViewID" value="Page1"/>
</p:menuitem>
<p:menuitem value="Other" url="#"/>
</p:submenu>
</p:submenu>
</p:menubar>
</h:form>

支持 bean 是这样的
@ManagedBean
@RequestScoped
public class navBean {

/**
* Creates a new instance of navBean
*/
private String includedPage = "contentMain.xhtml";
public navBean() {
}
public String getPage(){
return includedPage;
}
public void setPageName(){
this.includedPage = includedPage;
}

public String goNav() {
FacesContext context = FacesContext.getCurrentInstance();
String selectedPageViewId = context.getExternalContext().getRequestParameterMap().get("pageViewId");
if (selectedPageViewId.equalsIgnoreCase("page1")){
includedPage = "test.xhtml";
}
}

问题是它不起作用,没有异常(exception)。我最初尝试将 Action 变成这样......
将 goNav 更改为 void ......什么都没有。

有任何想法吗?
提前致谢
瑞克

最佳答案

对于这种情况,Primefaces 菜单项有一个 url 属性:

url: Url to be navigated when menuitem is clicked.



如果您不使用“url”但想使用“action”,请记住您正在执行发布请求。

在这种情况下,您应该
  • 将 ?faces-redirect=true 添加到返回的字符串中,例如“test.xhtml?faces-redirect=true”
  • 在您的菜单项中设置 ajax=false,例如

  • 看到这个 answer来自 primefaces 的首席开发人员

    关于jsf - 使用 MenuItem 进行 PrimeFaces 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017456/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com