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



我有一个隐藏的输入字段,它的值是从请求作用域的属性中读取的:

<h:inputHidden id="myHiddenField" value="#{requestScope['myVar']}" />

我触发了一个ajax请求,我改变了myVar的值。

<p:commandButton value="submit" action="#{myController.doSomething}" update="myHiddenField">

但是我的输入字段仍然包含旧的值。

你知道怎么解决这个问题吗?

更新:也许我需要再解释一下……myVar包含所有带有错误信息(facesContext.getClientIdsWithMessages())的输入字段的id。

当我第一次提交表单时(有一些验证错误),它按预期工作。当我重新提交带有其他验证错误的表单时,myVar的值没有更新……(仍然包含"旧"错误的id)当我重新提交没有验证错误的表单时,myVar得到更新。(myVar现在为空)

如果您希望在页面加载后访问bean,则至少需要将其设置为ViewScoped。当页面被加载时,RequestScoped bean将被销毁(请求被处理,不再需要它了)。

相关内容

  • 没有找到相关文章

最新更新