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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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 用于覆盖javax.faces.viewstate隐藏字段值的自定义ViewHandler_Jsf 2 - Fatal编程技术网

Jsf 2 用于覆盖javax.faces.viewstate隐藏字段值的自定义ViewHandler

Jsf 2 用于覆盖javax.faces.viewstate隐藏字段值的自定义ViewHandler,jsf-2,Jsf 2,我们可以在页面呈现之前更改inputHidden字段“javax.faces.viewState”的值吗 现场 应将该值更改为其他长度值。这可以通过使用自定义viewHandler来完成吗 我们可以通过将类扩展到ResponseWriter来实现这一点。该字段由从当前渲染工具包获得的ResponseStateManager渲染 如果您查找它的API,您将看到您不能仅仅覆盖字段的值。你必须把整个东西都换掉!由于状态保存相当复杂(请同时考虑服务器和客户端算法),因此我会三思而后行 另一种方法是使用S

我们可以在页面呈现之前更改inputHidden字段“javax.faces.viewState”的值吗

现场

应将该值更改为其他长度值。这可以通过使用自定义viewHandler来完成吗


我们可以通过将类扩展到ResponseWriter来实现这一点。

该字段由从当前渲染工具包获得的ResponseStateManager渲染

如果您查找它的API,您将看到您不能仅仅覆盖字段的值。你必须把整个东西都换掉!由于状态保存相当复杂(请同时考虑服务器和客户端算法),因此我会三思而后行


另一种方法是使用Servlet过滤器捕获整个响应。隐藏字段的名称是标准化的,您可以在其上搜索和替换。对于回发,可以使用相同的筛选器还原参数。

该字段由从当前渲染工具包获得的ResponseStateManager渲染

如果您查找它的API,您将看到您不能仅仅覆盖字段的值。你必须把整个东西都换掉!由于状态保存相当复杂(请同时考虑服务器和客户端算法),因此我会三思而后行


另一种方法是使用Servlet过滤器捕获整个响应。隐藏字段的名称是标准化的,您可以在其上搜索和替换。对于回发,您可以使用相同的筛选器还原参数。

我们是否可以覆盖ViewHandler中的createView方法以查找viewstate元素并更新值?不,它生成的是树,而不是字符串。唯一的另一种选择是设置一个缓冲响应编写器,获取相同的字符串,进行替换,然后写回。这与筛选器几乎相同,但您可能可以获取一个较小的部分。我们是否可以覆盖ViewHandler中的createView方法以查找viewstate元素并更新值?不,它生成一个树,而不是一个字符串。唯一的另一种选择是设置一个缓冲响应编写器,获取相同的字符串,进行替换,然后写回。这几乎与过滤器相同,但您可能可以获取较小的部分。