rich:dataTable
ユーザーが新しい行を追加できる場所を使用します。この行の1つには、<h:inputText>
到着時刻と出発時刻の2つが含まれています。これらのフィールドは、ユーザーが次に進むとすぐに検証する必要があります(入力テキストを残す/ぼかします)。検証は非常にうまく機能し、間違った入力が検出されます。これがrich:column
です。
<rich:column>
<f:facet name="header">
<h:outputText value="#{txt.detail_itinerary_times}" />
</f:facet>
<h:inputText id="arrivalTime" value="#{stop.arrival}"
validatorMessage="{txt.error_detailview_notatime}" size="5">
<f:validateRegex
pattern="^(([0-9])|([0-1][0-9])|([2][0-3])):(([0-9])|([0-5][0-9]))$" />
<rich:validator />
</h:inputText>
<h:inputText id="departureTime" value="#{stop.departure}"
validatorMessage="#{txt.error_detailview_notatime}" size="5">
<f:validateRegex
pattern="^(([0-9])|([0-1][0-9])|([2][0-3])):(([0-9])|([0-5][0-9]))$" />
<rich:validator />
</h:inputText>
<rich:message for="arrivalTime departureTime" />
ここで問題が発生します。このデータテーブルに20行あり、間違った時間を1回入力すると、検証失敗メッセージが行ごと、入力フィールドごとに20回表示されます。ただし、間違った時刻が入力された入力フィールドにのみ表示する必要があります。
これが議論されたいくつかの同様の問題です。残念ながら、これらのスレッドに参加してコメントを追加することができませんでした(十分なポイントがありませんか?)。だから、すでに答えられているかもしれない何かのために新しいスレッドを開いて申し訳ありません。