primefaces问题,特别是p:commandButton

时间:2011-10-18 12:15:39

标签: jsf primefaces

我首先使用RichFaces开发了一个JSF 2应用程序,然后最近迁移到了Primefaces。

所有事情都运转正常,除了:

  1. 点击按钮并致电update="id1, id2, etc"时,它不会更新我的网页内容。

  2. <p:commandButton value="Logout" action="#{profile.logout}" />不起作用,在注销方法中我只是清除会话并返回登录页面,但它保持在同一页面上。

  3. 我在Windows 7上使用4GB RAM的Tomcat 6.0.32。我正在使用PrimeFaces 2.2,这是最新的Stable版本。

1 个答案:

答案 0 :(得分:1)

  

点击按钮并调用update =“id1,id2等”时,它不会更新我的页面内容。

在我们给出答案之前,您必须提供更多背景信息。我的第一个猜测是你必须删除那些逗号(并且只用标准JSF2和RF4中的空格分隔)。我的第二个猜测是,那些组件在当前组件和NamingContainer层次结构中根本无法解析。我的第三个猜测是ajax请求没有返回有效的ajax响应(使用Firebug进行检查)。


  

<p:commandButton value="Logout" action="#{profile.logout}" />不起作用,在注销方法中我只是清除会话并返回登录页面,但它保持在同一页面上。

<p:commandButton>默认发送ajax请求。如果您想要导航到另一个视图作为对ajax请求的响应,那么您必须发送重定向。您可以通过在结果中添加faces-redirect=true参数来实现此目的:

return "login?faces-redirect=true";

或者,或者,只需关闭按钮上的ajax:

<p:commandButton ... ajax="false" />

或者,请改用标准<h:commandButton>

<h:commandButton ... />