Jsf 2 用于覆盖javax.faces.viewstate隐藏字段值的自定义ViewHandler
我们可以在页面呈现之前更改inputHidden字段“javax.faces.viewState”的值吗 现场 应将该值更改为其他长度值。这可以通过使用自定义viewHandler来完成吗Jsf 2 用于覆盖javax.faces.viewstate隐藏字段值的自定义ViewHandler,jsf-2,Jsf 2,我们可以在页面呈现之前更改inputHidden字段“javax.faces.viewState”的值吗 现场 应将该值更改为其他长度值。这可以通过使用自定义viewHandler来完成吗 我们可以通过将类扩展到ResponseWriter来实现这一点。该字段由从当前渲染工具包获得的ResponseStateManager渲染 如果您查找它的API,您将看到您不能仅仅覆盖字段的值。你必须把整个东西都换掉!由于状态保存相当复杂(请同时考虑服务器和客户端算法),因此我会三思而后行 另一种方法是使用S
我们可以通过将类扩展到ResponseWriter来实现这一点。该字段由从当前渲染工具包获得的ResponseStateManager渲染 如果您查找它的API,您将看到您不能仅仅覆盖字段的值。你必须把整个东西都换掉!由于状态保存相当复杂(请同时考虑服务器和客户端算法),因此我会三思而后行
另一种方法是使用Servlet过滤器捕获整个响应。隐藏字段的名称是标准化的,您可以在其上搜索和替换。对于回发,可以使用相同的筛选器还原参数。该字段由从当前渲染工具包获得的ResponseStateManager渲染 如果您查找它的API,您将看到您不能仅仅覆盖字段的值。你必须把整个东西都换掉!由于状态保存相当复杂(请同时考虑服务器和客户端算法),因此我会三思而后行
另一种方法是使用Servlet过滤器捕获整个响应。隐藏字段的名称是标准化的,您可以在其上搜索和替换。对于回发,您可以使用相同的筛选器还原参数。我们是否可以覆盖ViewHandler中的createView方法以查找viewstate元素并更新值?不,它生成的是树,而不是字符串。唯一的另一种选择是设置一个缓冲响应编写器,获取相同的字符串,进行替换,然后写回。这与筛选器几乎相同,但您可能可以获取一个较小的部分。我们是否可以覆盖ViewHandler中的createView方法以查找viewstate元素并更新值?不,它生成一个树,而不是一个字符串。唯一的另一种选择是设置一个缓冲响应编写器,获取相同的字符串,进行替换,然后写回。这几乎与过滤器相同,但您可能可以获取较小的部分。