我正在构建一个Seam应用程序,它基本上是一个分成不同部分或模块的巨大表单。我需要一种方法来弄清楚什么时候一个模块是"完整的",这意味着该模块中的字段的所有验证通过。然后我需要在视图中做一些事情,设置css-class或其他。
类似:
<a:region id="region1">
<s:div styleClass="#{invalid ? 'errors' : ''}">
<h:inputText required="true" id="input1" />
<h:inputText required="true" id="input2" />
<h:commandButton value="Save this section" reRender="region1" />
</s:div>
</a:region>
我想我有两个选择:
- 使用某种视图逻辑(如单个字段的#{invalid})
- 使用bean中的方法,在那里我以编程方式获得模块的所有组件,并检查它们是否存在验证错误。
然而,我找不到任何方法来做他们中的任何一个。你知道这有可能吗?
我们使用JSF 1.2和Seam。
谢谢。
您可以使用UIInput#isValid()
来检查是否在特定的输入组件上发生了验证错误。
<s:div styleClass="#{!input1.valid or !input2.valid ? 'errors' : ''}">
<h:inputText binding="#{input1}" required="true" id="input1" />
<h:inputText binding="#{input2}" required="true" id="input2" />
<h:commandButton value="Save this section" reRender="region1" />
</s:div>