我有一个隐藏的输入字段,该值从请求范围的属性中读取:
<h:inputHidden id="myHiddenField" value="#{requestScope['myVar']}" />
我触发了一个Ajax-Request,我在其中更改了myVar
的值。
<p:commandButton value="submit" action="#{myController.doSomething}" update="myHiddenField">
但我的输入字段仍包含旧值。
知道如何解决这个问题吗?
更新
也许我需要再解释一下.. myVar
包含所有输入字段的ID,并带有错误消息(facesContext.getClientIdsWithMessages()
)。
当我第一次提交表单(有一些验证错误)时,它按预期工作。当我重新提交带有其他验证错误的表单时,myVar
的值不会更新...(仍然包含'旧'错误的ID)当我重新提交表单时没有验证错误{{1得到更新。 (myVar
现在为空)
答案 0 :(得分:1)
如果要在加载页面后访问bean,则需要至少使用ViewScoped。加载页面时会销毁RequestScoped bean(处理请求并且不再需要它)。