我需要根据某些输入字段显示响应页面。例如 tabid inputHidden 下面:
#{controllerBean.tabId}
...
<h:form id="edit">
<h:inputHidden value="#{controllerBean.tabId}" id="tabid" />
<h:inputText value="#{controllerBean.name}" id="name" />
</h:form>
但是当同一表单中的其他一些输入出现验证错误时(例如“名称”inputText)。不会分配“controllerBean.tabId”值,因为 JSF 在验证阶段返回。
我仍然需要 tabId 来正确显示页面并记住两个想法:
#{param['edit:tabid']}
或使用绑定:
#{tabId.value}
<h:inputHidden value="#{controllerBean.tabId}" id="tabid" binding="tabId" />
我的问题是,这两个中哪一个更好或最佳实践?或者有更好的方法来做到这一点?
更新:
笔记。在我的具体情况下,tabid 是由客户端 javascript 设置的。
- 服务器回复 html 中的一些项目。
- Javascript 将这些项目放入页面上的不同选项卡中。
- 选项卡之一使用表单中的当前 tabid 将数据发布到服务器。
所以我的服务器需要知道 tabid 以显示选择了正确选项卡的响应页面。