p:commandLink不会重定向到新页面?

Rob*_*ume 7 jsf glassfish primefaces

我正在使用JSF2和GlassFish,PrimeFaces 2.1.

这样工作,showCreateProfile()方法被命中,方法返回"profileForm",浏览器重定向到该页面:

<h:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" />
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,showCreateProfile()方法获取命中,并且方法返回"profileForm"但浏览器不会重定向到页面.我尝试了三件不同的事情,没有运气:

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" />

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" ajax="false" />

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" ajax="false" immediate="true"/>
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

Bal*_*usC 16

Primefaces p:commandLink默认激活ajax请求.它不返回整个HTTP响应,而只返回部分HTTP响应,它必须由JS在HTML DOM树中更新.

你基本上有两个选择:

  1. ajax="false"属性禁用ajax .然后它将触发正常的HTTP请求.

  2. update="clientid"属性更新(重新呈现)部分内容(在同一页面上!).您可以使用rendered属性来控制内容的呈现.

如果两者都不起作用,那么问题就在于其他地方.由于h:commandLink作品和动作方法p:commandLink也会被执行,所以它只能意味着你在尝试时没有运行你认为正在运行的代码ajax="false".验证,保存,重建,重新部署,重新启动.