0

p:messages の使用に問題があるため、次のように各コンポーネントに p:message を使用しようとしています。

<div style="position: relative;">
    <h:panelGrid id="messages" columns="1">
      <p:message for="idTxtFirstName" id="msgFirstName" />
      <p:message for="idTxtLastName"  id="msgLastName" />
      <p:message for="idTxtTitle"  id="msgTitle" />
      <p:message for="idTxtCompany" id="msgCompany" />
      <p:message for="idTxtEmail"  id="msgEmail" />
      <p:message for="idTxtPhoneNumber" id="msgPhoneNumber" />
      <p:message for="idEstNumOfUser" id="msgEstNumOfUser" />
    </h:panelGrid>                                          
</div>

エラーが発生した場合でもデフォルトで生成される html は次のとおりです。

<table id="betasignup:messages">
<tbody>
<tr>
<td><div id="betasignup:msgFirstName" aria-live="polite"></div></td>
</tr>
<tr>
<td><div id="betasignup:msgLastName" aria-live="polite"></div></td>
</tr>
<tr>
<td><div id="betasignup:msgTitle" aria-live="polite"></div></td>
</tr>
<tr>
<td><div id="betasignup:msgCompany" aria-live="polite"></div></td>
</tr>
<tr>
<td><div id="betasignup:msgEmail" aria-live="polite"></div></td>
</tr>
<tr>
<td><div id="betasignup:msgPhoneNumber" aria-live="polite"></div></td>
</tr>
<tr>
<td><div id="betasignup:msgEstNumOfUser" aria-live="polite"></div></td>
</tr>
</tbody>
</table>

したがって、コンポーネントの検証のみが失敗した場合 (一般的に検証が失敗したわけではありません)、メッセージ コンポーネントをレンダリングする方法を考えていました。

4

1 に答える 1

0

idメッセージ タグで検証する必要があるコンポーネントのを指定する必要があります。の入力を検証する場合は、次の<p:inputText>ようになります。

<p:inputText id="inputText" value="#{mrBean.text}"/>
<p:message for="inputText" id="inputTextMessage"/>

その後、メッセージは、コンポーネントの JSF 検証が失敗した場合にのみレンダリングされます。

ご覧のとおり、メッセージの で他の ID を選択してforいます。これが機能しない理由です。

于 2013-07-05T07:07:04.083 に答える