2016-04-01 3 views
0

編集日付フィールドにDateTextFieldを使用しています。 ユーザが無効な日付を入力した場合(たとえば、日付を記入した文字を入力した場合) フォームを送信すると、DateTextFieldがidに基づいて無効な日付メッセージを内部で作成します。Wicket DateTextFieldカスタムエラーメッセージ

私のコードは次のとおりです。ユーザーは、フォームに提出するすべての無効な日付を入力した場合

form.add(DateTextField.forDatePattern("orderStartDate", new DateModel(new PropertyModel<Date>(this, "defaultModelObject.startDate")), "dd/MM/yyyy")); 

、DateTextFieldはメッセージを生成します。

"'orderStartDate'の値は有効な日付ではありません。"

メッセージ 'orderStartDate'は、私がDateTextFieldで設定したIDです。

今、私は上記のメッセージの中にこのエラーのカスタムメッセージを作成したいと思います。

答えて

3

デフォルト値はIConverterリソースバンドルのキーから来ている:https://github.com/apache/wicket/blob/77b4df63f44d00e9350068686e4b091f730f167f/wicket-core/src/main/java/org/apache/wicket/Application.properties#L16

あなたが例えば、それを上書きするYourApplication.propertiesに、より具体的なものを提供する必要があります。

orderStartDate.IConverter=Please provide a date with pattern dd/MM/yyyy. 
+0

メイクローミングサービスを定義します。私は動的プロパティを設定することができるようなものがありますか? –

+0

はい!詳細については、StringResourceModelのjavadocを確認してください。 –

0

バリ通常、そのクラスを報告Errorオブジェクトに追加します。 WicketがFeedbackMessageを生成すると、それはStringResourceModelで検索されます。あなたは言葉遣いのための.propertiesまたは.properties.xmlファイルを使用するのであれば、あなたは必要なFormComponents

<entry key="Required">Please provide a value!</entry> 
ため(エラーを報告しました)IConverterのキーを使用してFeedbackMessage

<entry key="IConverter.Date">Please use the format dd/MM/yyyy!</entry> 

同じ話を追加したい場合があります

いつか独自のバリデーターを書いたら、キーとオプションのパラメーターを付けます。

private void error(IValidatable<String> validatable) { 
    ValidationError error = new ValidationError(); 
    error.addKey("id.exists"); 
    error.setVariable("id", valueThatIsNotValid); // variable held in class 
    ekpCmp.error(error); 
} 

とStringResource

私はチームメイトに
<entry key="id.exists">The value ${id} already exists.</entry>