JSF:在ajax-request之后重新加载请求范围属性

时间:2011-07-07 07:39:13

标签: ajax jsf primefaces

我有一个隐藏的输入字段,该值从请求范围的属性中读取:

<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现在为空)

1 个答案:

答案 0 :(得分:1)

如果要在加载页面后访问bean,则需要至少使用ViewScoped。加载页面时会销毁RequestScoped bean(处理请求并且不再需要它)。