フィールドを動的に構築し、正規表現を使用してデータ型の検証を設定するページはほぼ完成しましたが、金曜日に、フィールドを単なる文字列ではなく実際のデータ型に結び付け始めたときに問題が発生しました。問題は、日付 (java.util.Date) に関連付けられた値にあります!!
ページと検証のテスト中に、日付フィールドに 12/12/2012 などの日付を入力しています。検証メソッドに到達すると、Tue Dec 11 19:00:00 EST 2012 として表示されます。表示される日付は常に 1 日早い @ 19:00:00 で、まったく異なる形式です。
指定した形式で送信された日付を取得するにはどうすればよいですか?
...また...
日付の値が正しくない理由についてのアイデアはありますか?
ページに日付フィールドを作成する:
<h:inputText id="inputField2" tabindex="#{field.fieldDefinition.fieldOrder}" value="#{field.val}" validator="#{field.fieldDefinition.validate}" validatorMessage="#{field.fieldDefinition.validationMessage}">
<f:convertDateTime pattern="MM/dd/yyyy" />
</h:inputText>
呼び出される Validation メソッド:
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
if (getDataType() != null && getDataType().getValidationExpression() != "") {
regexValidator = new RegexValidator();
regexValidator.setPattern(getDataType().getValidationExpression());
regexValidator.validate(context, component, value);
}
}
いつものように...助けてくれてありがとう。
よろしく、
マイク