如何在JSF DataTable的相应行中放置错误消息?

时间:2010-01-02 18:55:26

标签: java jsf datatable

假设我有一个可编辑的数据表,如果编辑的字段在某种程度上是错误的,则自定义转换器会抛出异常,如何在数据表的相应行中显示错误消息?

这里有一些代码,就像我能做到的一样简单。

<h:messages />
<h:datatable>
    <h:column>
        <h:inputText value="#{bean.property}">
            <f:converter converterId="PropertyConverter" />
        </h:inputText>
    </h:column>
</h:datatable>

如果一行出错,我该如何将错误信息放在该行中。我显然可以有一个错误列,但是如何定位相应的行?

1 个答案:

答案 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将关注魔术(在右侧显示消息)。