1

ICEfaces コンポーネントを含むフォームを含む Facelets ページがあります。empIdBean で null かどうかを確認する必要がある long 型のプロパティです。それはフォームのように取られ、それを DAO に渡して DB 列と照合するためにStringlong 型に変換しています。Long.valueof(empId).longValue();

これは私たちがそれを行うことになっている方法ですか?それとも別の方法がありますか?

4

1 に答える 1

1

Longプロパティの代わりにプロパティを使用して、JSF/EL によるString自動変換を適用したいと考えています (つまり、 standard 、および型の組み込み変換があります)。LongNumberBooleanEnum

private Long empId;

<h:inputText value="#{bean.empId}" />

required必要な入力を検証するために属性を使用したいと考えています。

<h:inputText value="#{bean.empId}" required="true" />

変換または検証のエラー メッセージは、 を使用して表示できます<h:message>

<h:inputText id="empId" value="#{bean.empId}" required="true" />
<h:message for="empId" />

必要に応じて、変換と必要なメッセージを次のように変更できます。

<h:inputText id="empId" value="#{bean.empId}" required="true" 
    requiredMessage="Please enter employee ID." 
    converterMessage="Please enter digits only." />
<h:message for="empId" />

この方法では、Bean のアクション メソッドで変換/検証を実行する必要はありません。変換には JSF 組み込みコンバーターまたはカスタムConverterを使用し、検証には JSF 組み込みバリデーターまたはカスタムを使用する必要がありますValidator。バッキング Bean のプロパティは適切な型を既に保持している必要があり、バッキング Bean のアクション メソッドは変換/検証を行うべきではありません。

列をチェックするためのDAOメソッド呼び出しが custom でうまく処理できないかどうかValidatorは疑問ですが、それは質問からは不明な具体的な機能要件にすべて依存しています。

于 2012-10-22T23:04:02.230 に答える