Как отобразить сообщение об ошибке для каждого h: inputText внутри h: dataTable? - PullRequest
0 голосов
/ 06 января 2012

Мне нужно отображать сообщения об ошибках после сбоя проверки для каждого h: inputText внутри h: dataTable. Вот код:

<h:dataTable value="#{myBean.dataList}" var="dataItem">

<h:column>
    <f:facet name="header">
        <h:outputText value="Name" />
    </f:facet>
    <h:inputText id="name" value="#{dataItem.name}" />
</h:column>

<h:column>
    <f:facet name="header">
        <h:outputText value="Value" />
    </f:facet>
    <h:inputText id="value" value="#{dataItem.value}" />
</h:column>
</h:dataTable>

Когда я пытался поставить:

<h:inputText id="name" value="#{dataItem.name}" />
<h:message for="name"/>

Возвращает:

Caused by: java.lang.NullPointerException   
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.augmentIdReference(HtmlBasicRenderer.java:196)

Ответы [ 2 ]

1 голос
/ 06 января 2012

Попробуйте следующее.

<h:column>
      <f:facet name="header">
          <h:outputText value="Name" />
      </f:facet>
      <h:inputText id="name" value="#{dataItem.name}" required="true" requiredMessage="Mandatory"/>              

     <h:message for="name" id="msg"/>

</h:column>

Вы не связали свой <h:message></h:message> со своим <h:inputText></h:inputText>.Я просто сделал <h:inputText></h:inputText> обязательным для заполнения.Возможно, вам придется использовать некоторые валидаторы по мере необходимости, чтобы удовлетворить ваши требования.

0 голосов
/ 06 января 2012

Похоже, вы используете версию Mojarra 1.2 старше 1.2_14.Это известно как выпуск 941 , который был исправлен в 1.2_14.В настоящее время последняя версия Mojarra 1.2 - 1.2_15.Вы можете скачать это здесь .Замените оба jsf-api.jar и jsf-impl.jar, и все должно быть готово.Кстати, ваш код в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...