Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 将值设置为f:setPropertyActionListener jsf primefaces时出现非GZIP格式错误_Jsf 2_Primefaces_Gzip - Fatal编程技术网

Jsf 2 将值设置为f:setPropertyActionListener jsf primefaces时出现非GZIP格式错误

Jsf 2 将值设置为f:setPropertyActionListener jsf primefaces时出现非GZIP格式错误,jsf-2,primefaces,gzip,Jsf 2,Primefaces,Gzip,在通过jquery修改f:setPropertyActionListener的值之后,我有一个错误,如下所示: $('#javax\\.faces\\.ViewState').val("1111111"); 我检查了元素以了解其id(它被转换为隐藏输入) 以下是jsf元素: <p:commandButton actionListener="#{typeMB.supprimer}" value="supprimer" > <f:setPropertyActionLis

在通过jquery修改f:setPropertyActionListener的值之后,我有一个错误,如下所示:

$('#javax\\.faces\\.ViewState').val("1111111");
我检查了元素以了解其id(它被转换为隐藏输入)

以下是jsf元素:

<p:commandButton actionListener="#{typeMB.supprimer}"  value="supprimer" >
    <f:setPropertyActionListener target="typeMB.selectedIdType" value="dcscdc" />
    </p:commandButton>
    </h:form>

然后在页面的代码源代码中:值受到影响,但方法“supprimer”没有执行,我有以下错误:

 mars 19, 2013 3:33:12 PM com.sun.faces.renderkit.ClientSideStateHelper doGetState
SEVERE: Not in GZIP format
java.util.zip.ZipException: Not in GZIP format
    at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
    at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78)
    at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:90)
    at com.sun.faces.renderkit.ClientSideStateHelper.doGetState(ClientSideStateHelper.java:231)
    at com.sun.faces.renderkit.ClientSideStateHelper.getState(ClientSideStateHelper.java:198)
    at com.sun.faces.renderkit.ResponseStateManagerImpl.getState(ResponseStateManagerImpl.java:100)
    at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:227)
    at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
    at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:453)
    at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)
mars 192013:33:12 PM com.sun.faces.renderkit.ClientSideStateHelper doGetState
严重:不是GZIP格式
java.util.zip.ZipException:不是GZIP格式
位于java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
位于java.util.zip.GZIPInputStream。(GZIPInputStream.java:78)
位于java.util.zip.GZIPInputStream。(GZIPInputStream.java:90)
在com.sun.faces.renderkit.ClientSideStateHelper.doGetState(ClientSideStateHelper.java:231)上
位于com.sun.faces.renderkit.ClientSideStateHelper.getState(ClientSideStateHelper.java:198)
位于com.sun.faces.renderkit.ResponseStateManagerImpl.getState(ResponseStateManagerImpl.java:100)
位于com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:227)
位于com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
在com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)上
在com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:453)
在com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)上
我该怎么解决呢


提前谢谢

您不能通过jQuery修改
的值。这些信息不会打印到HTML输出的任何地方(在浏览器中右键单击页面,自己查看源代码),因此JS/jQuery也无法处理这些信息。您当前的jQuery尝试只修改JSF视图状态标识符的隐藏输入字段,这是一个巨大的禁忌(这反过来表明您不知道基本的JSF、HTTP和HTML是如何工作的;此时我强烈建议暂时停止开发JSF Web应用程序,先浏览一些正常的HTTP/HTML/JSF资源来了解基本事项)。此错误导致了特定的异常:您将JSF视图状态标识符修改为某个非预期格式的任意值

您仍然没有清楚地说明具体的功能需求,但是如果您的唯一目的是将一个JavaScript控制的变量作为额外的请求参数传递给JSF,那么您应该寻找一个不同的解决方案


你不是在修改
的值。你是在修改
的值。你绝对确定你知道你在做什么吗?这个问题表明你不知道。请详细说明具体的功能需求,你错误地认为这是正确的解决方案,而不是发布代码sn在现实世界中没有意义,并且问了一个错误的问题。我想通过jquery修改
的value属性(而不是像jsf那样使用ajax)是的,我理解。我只是问为什么。这是完全不可能的。一旦你详细解释了为什么,那么我们就可以提出正确的解决方案。为什么是你错误地认为这是正确的解决方案的具体功能需求。现在我进一步解释我的目标:我注意到primefaces在我所有的工作中都使用ajaxts通信,在某些情况下,我不需要从服务器提供数据,因此我希望使用primefaces UI组件,但在可以从当前页面检索数据时也使用jquery
<h:form id="formId">
    <h:inputHidden id="hiddenId" value="#{typeMB.selectedIdType}" />
    <p:commandButton value="supprimer" onclick="yourFunction()" actionListener="#{typeMB.supprimer}" />
</h:form>
function yourFunction() {
    $("#formId\\:hiddenId").val("1111111");
}