Struts2上のオブジェクトのリストを検証しようとしています。Struts2リストの検証
INVOICE
というクラスがあるとします。 それはと呼ばれる3つのプロパティがあります。product, quantity, price
をそして私はINVOICES
と呼ばれるINVOICE
のリストを持っています。
jspファイルでは、リストを反復処理すると、これらの入力が生成されます。
invoices[0].product
invoices[0].quantity
invoices[0].price
invoices[1].product
invoices[1].quantity
invoices[1].price
投稿後、これらの値を検証する必要があります。
ご覧のとおり、Struts2はコレクションの検証をサポートしていません。 http://www.opensymphony.com/webwork/api/com/opensymphony/xwork/validator/validators/CollectionFieldValidator.html
注釈を使用して行う方法が見つかりました。何かのように
@RequiredStringValidator(message="Product name is required")
public void setProduct(String product) {
this.product = product;
}
私はプロジェクトのコーディング標準のために検証クラスの注釈を入れることはできません。なぜなら私はMESSAGESをプロパティファイルに保存する必要があるからです。
私は、ここで述べたVisitorValidationを使ってこの検証を行うことができることを読んだ。 http://struts.apache.org/2.0.11.2/docs/using-visitor-field-validator.html
しかし、私はこれらの例を見ることによってこれを行う方法を理解できませんでした。
バリデーションXMLだけを使用する方法はありますか?ありがとう
ANSWER:
私はVisitorFieldValidatorでそれをやった、と私は正しい答えにコメントとして、私はまだ問題を抱えていました。
私のモデルパッケージにMyModel-validation.xml
を置くと問題が解消しました。正解として
が強調表示:
は、次のモデルクラスに、彼らが属する1つの場所にあなたのモデルのためのあなたの検証を管理します。
と仮定一覧請求書=新しいArrayListを();.ファイル名をInvoices-validation.xmlまたはFoo-validation.xmlにする必要がありますか? –
batbaatar
私は妥当性検査で傍受されないので、私は尋ねています。 – batbaatar
'Invoice-validation.xml'にする必要があります。しかし、私の例では、必要な 'invoices'フィールド検証設定の' message'要素がありませんでした。この例を更新します。コンソールにエラーが表示されますか? – Asa