2

マップがあり、Struts 2 検証フレームワークで式の検証を使用して検証したいのですが、マップの要素に動的にアクセスするにはどうすればよいですか?

myMap をマップする場合。動的キーでマップを検証するにはどうすればよいですか? mymapに「Salary」のような静的キーがある場合、次のように検証できます

<field
    name="myMap['Salary']">
    <field-validator
        type="regex">
        <param
        name="expression">[0-9]+[.][0-9]+</param>
        <message>${getText("errors.validation.number")}</message>
    </field-validator>
</field>

ありがとう、

ヘレン

4

3 に答える 3

1

宣言型検証でmyAppを使用する方法は2つあります。

  1. myMap.salaryを使用する
  2. myMap['salary']を使用する

入力フォームフィールドの定義方法に基づいた上記の表記のいずれかを使用する必要があります。

たとえば、入力フォームが次のようになっている場合は、を使用する必要があります。を使用しているときの演算子。入力フィールドの名前を定義する際の演算子。

<s:form action="sayHello">
<s:textfield name="myMap.salary" label="Salary">
<s:submit/>
</s:form>

入力フィールドの名前を定義するために[]演算子を使用する場合は、[]演算子を使用してバリデーターのプロパティにアクセスします。

したがって、上記の検証コードは正しいので、[]演算子を使用して入力フォームで入力フィールドを正しく定義する必要があります。

お役に立てれば

于 2009-07-21T06:15:16.577 に答える
1

Hibernate Validator Frameworkには、再帰的な検証機能があります。

そして、これを使用する Struts2 用のプラグインがあります。

完全な Hibernate プラグイン: http://cwiki.apache.org/S2PLUGINS/full-hibernate-plugin.html

于 2009-10-08T12:36:30.677 に答える
0

宣言的な検証でこれを行うことはできないと思います。このための検証メソッドにドロップダウンするか、フレームワークによって生成された JavaScript 検証を使用している場合は JavaScript で検証を行うことをお勧めします。

于 2009-07-09T03:50:18.300 に答える