PrimeFaces commandButton不会导航或更新

我使用Primefaces使我的应用程序更漂亮一点。 我注意到, p:commandButtonh:commandButton工作方式不一样。

p:commandButton调用这个方法,没有别的东西需要处理。 h:commandButton调用该方法并返回一个导航。

使用p:commandButton时,按下loginbutton后redirect时遇到问题。 如何处理?


我有一个更新参数:

 <p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" /> 

<p:commandButton>需要以下一项才能正常工作:

  • update属性以列出要重新渲染的组件的id(用于AJAX请求)
  • 属性ajax="false"使一个正常的,非ajax提交。

如果两者都没有,则该button按默认值执行没有UI反馈的AJAX请求。

另外,当周围的<h:form>有一个enctype属性时,我遇到了两个选项都没有问题的问题。

我想Cagatay是什么:

浏览页面:

 <p:commandButton action="home.xhtml" value="Go Home"/> 

作品(redirect页面):

 <p:commandButton action="home.xhtml?faces-redirect=true" value="Go Home"/> 

作品(redirect页面)

 <p:commandButton action="home?faces-redirect=true" value="Go Home"/> 

如果.xhtml是您在web.xml中定义的默认后缀:

 <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> 

在primefaces论坛中可以find更多信息,例如在关于导航的讨论中

我希望这有点帮助…

如果您正在进行导航,并且使用ajax完成请求,则必须使用redirect。

我有个类似的问题。

当使用带有ajax =“false”和action =“find.xhtml?faces-redirect = true”的<p:commandButton> ,我正在使用primefaces和primefaces mobile,导航在Firefox中失败。

我唯一可以使它在Firefox中工作的方法是使用<h:commandButton>

 <h:commandButton value="#{msg.find}" process="find" action="find.xhtml?faces-redirect=true" />