假设我有一个可编辑的数据表,如果编辑的字段在某种程度上是错误的,则自定义转换器会抛出异常,如何在数据表的相应行中显示错误消息?
这里有一些代码,就像我能做到的一样简单。
<h:messages />
<h:datatable>
<h:column>
<h:inputText value="#{bean.property}">
<f:converter converterId="PropertyConverter" />
</h:inputText>
</h:column>
</h:datatable>
如果一行出错,我该如何将错误信息放在该行中。我显然可以有一个错误列,但是如何定位相应的行?
答案 0 :(得分:2)
只需在同一个表格中添加<h:message />
个组件,其中for
属性指向相关id
组件的UIInput
。
例如:
<h:datatable>
<h:column>
<h:inputText id="someId" value="#{bean.property}">
<f:converter converterId="PropertyConverter" />
</h:inputText>
</h:column>
<h:column>
<h:message for="someId" />
</h:column>
</h:datatable>
或者如果你想在同一列中的输入元素之后直接使用它:
<h:datatable>
<h:column>
<h:inputText id="someId" value="#{bean.property}">
<f:converter converterId="PropertyConverter" />
</h:inputText>
<h:message for="someId" />
</h:column>
</h:datatable>
无需其他代码,只需像往常一样抛出ConverterException
。 JSF将关注魔术(在右侧显示消息)。