我有一个隐藏的输入字段,该值从请求作用域的属性中读取:
<h:inputHidden id="myHiddenField" value="#{requestScope['myVar']}" />我触发了一个Ajax请求,其中我更改了myVar的值。
<p:commandButton value="submit" action="#{myController.doSomething}" update="myHiddenField">但是我的输入字段仍然包含旧值。
知道我怎么解决这个问题吗?
更新:,也许我得再解释一下。myVar包含所有输入字段的ID,并带有错误消息(facesContext.getClientIdsWithMessages())。
当我第一次提交表单时(有一些验证错误),它就像预期的那样工作。当我用其他验证错误重新提交表单时,myVar的值不会被更新.(仍然包含“旧”错误的ID)当我在没有验证错误的情况下重新提交表单时,myVar会被更新。(myVar现在是空的)
发布于 2012-06-07 15:53:32
如果您想在加载页面之后访问bean,那么它至少需要是ViewScoped。RequestScoped bean在加载页面时被销毁(请求被处理,不再需要它了)。
https://stackoverflow.com/questions/6607347
复制相似问题