我首先使用RichFaces开发了一个JSF 2应用程序,然后最近迁移到了Primefaces。
所有事情都运转正常,除了:
点击按钮并致电update="id1, id2, etc"
时,它不会更新我的网页内容。
<p:commandButton value="Logout" action="#{profile.logout}" />
不起作用,在注销方法中我只是清除会话并返回登录页面,但它保持在同一页面上。
我在Windows 7上使用4GB RAM的Tomcat 6.0.32。我正在使用PrimeFaces 2.2,这是最新的Stable版本。
答案 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 ... />