私は独自の検証を使用していますが、フォームのビュー (コンポーネントが無効な場合など) を強調表示するか、改札内でカスタマイズする必要があります...
たとえば、私はウィケットフォームを持っています
<form wicket:id="inputForm">
<p>
<label for="Recipient">Recipient</label>
<input wicket:id="Recipient" id="Recipient" type="text" size="40"/>
</p>
<p>
<label for="Details">Details</label>
<input wicket:id="Details" id="Details" type="text" size="40"/>
</p>
</form>
次に、Form.java を作成します。ここでは、Java オブジェクト「Invoice」の値を設定し、onValidateModelObjectsを使用して改札の検証をオーバーライドし、独自の検証を使用します...検証...
public InvoiceForm() {
...
Form<Invoice> form = new Form("inputForm", formModel) {
/*
* Validation takes place here
*/
@Override
public void onValidateModelObjects() {
ValidationProcess vp = new ValidationProcess();
vp.validate("Rules.js", r);
msg = "";
if (vp.getConstraintViolations().size() > 0) {
for (String s : vp.getConstraintViolations()) {
msg = msg + s;
}
} else {
msg = "no errors.";
}
}
};
//adding Textfields to the Form etc...
...
}
必要なもの: 上記で、私の errorMessages が msg 文字列に保存されることがわかります! 今私が望むのは、Wicket がこの文字列を取得し、それを Wicket FeedBackMessage System に適用することです。しかし...
- 現時点でレンダリングされるコンポーネントを取得する必要があります...
- このコンポーネントのエラーメッセージをコンポーネントに設定する必要があります...
どうやってやるの?
いくつかのメソッドをオーバーライドする必要があると思いますが、どれがどこであるかわかりません...