如何禁用 jsf 2.2 中的 clientwindow 功能

How to disable clientwindow feature in jsf 2.2

我是 运行 一个 jsf2.2 应用程序并使用 Primefaces 和 JAVA 1.6,我试图禁用客户端 window 功能,它删除了 jfwid.Please 建议我该如何处理这个问题。

我相信 ClientWindow 功能在默认情况下是禁用的。以下 JavaDoc 详细说明了该行为:

http://docs.oracle.com/javaee/7/api/javax/faces/lifecycle/ClientWindow.html#CLIENT_WINDOW_MODE_PARAM_NAME

此外,我不确定为什么 p:commandButton(h:commandButton) 会期望 disableClientWindow,因为这是 POST 请求,而 p:button(h:button) 将是一个 GET 请求。

查看 h:commandButton 的 vld 文档,您会发现没有 disableClientWindow 属性,但 h:button 有。

我已经尝试对 web.xml 上的所有应用程序禁用它,但没有成功。我尝试了以下方法:

<context-param> 
      <param-name>javax.faces.lifecycle.ClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME</param-name> 
      <param-value>none</param-value> 
</context-param>

我让它工作的唯一方法是在重定向之前在代码上使用它,例如:

FacesContext.getCurrentInstance().getExternalContext().getClientWindow().disableClientWindowRenderMode(FacesContext.getCurrentInstance());
return "/home?faces-redirect=true";

或在自己的按钮上使用它或link:

<a jsf:disableClientWindow="true" target="_blank" jsf:outcome="go_to_anywhere?faces-redirect=true">GoToAnywhere</a>