我的网站上有两个面板。我使用第一个面板(有一个用户列表)来选择一个用户,我希望在第二个面板上更改其数据(我使用AJAX来完成此操作)。当我尝试更改这些数据并发生验证错误时,不可能更改所选用户,因为第二个面板仍然显示以前的UI组件值(它们不会再次从模型中读取)。如何使用模型值强制JSF刷新UI组件值?
大多数a4j组件都有一个renderer属性,您可以为应该刷新的布局部分提供一个id列表。
如果你提供一些代码,我们可能会建议一些更具体的东西
您可以将命令标记为immediate=true,这样您就可以跳过验证并应用请求值,并使用EL参数来更新您的内容。
因为你没有提供代码,我将创造一些:<h:commandLink action="#{userController.showUser(selectedUser)}" immediate="true" value="Show user"/>
如果这是不可能的(例如,你使用一个真正的列表,需要提交),只需创建2个<h:form>
。表单独立提交数据,因此它们不会在验证时相互冲突。