1

次のように、DateTextField にいくつかの検証を追加しようとしました。

      IFormValidator validator = new AbstractFormValidator() {
        public FormComponent<?>[] getDependentFormComponents() {
            return new FormComponent[] { dateTextField };
        }

        public void validate(Form<?> form) {
            Date date = (Date) dateTextField.getConvertedInput();

            if(date == null){
                error(getDependentFormComponents()[0],"Date of Collection is empty.");
            }
            else{
                if (date.before(getTodayDate(Boolean.TRUE))){
                    error(getDependentFormComponents()[0],"The range of the Date of Collection is invalid.");
                }
            }
        }
    };

    form.add(validator);

検証は完全に正常に機能していますが、エラー メッセージの出力は次のように表示されます。

  Could not locate error message for component: CreatePrintingJob$3@form:dateOfCollection and error: [ValidationError message=[null], keys=[Date of Collection is empty., CreatePrintingJob$4], variables=[[label0=dateOfCollection],[name0=dateOfCollection],[input0=]]]. Tried keys: dateOfCollection.Date of Collection is empty., Date of Collection is empty., dateOfCollection.CreatePrintingJob$4, CreatePrintingJob$4.

エラーメッセージが見つからないのはなぜですか?

4

1 に答える 1

2

これは、コンポーネント/ページ/アプリケーションのプロパティ バンドルで Wicket が正しいエラー メッセージを見つけられるように、プロパティ キーを指定する必要があるためです。

于 2012-01-20T13:57:02.280 に答える