私のデータベースでは、フィールドのタイプをVARCHARからDECIMALに変更しました。したがって、JavaモデルクラスのタイプをStringからBigDecimalに変更しました。
以前のXML検証ファイルには、requiredStringfieldValidatorがあります。そのままにしておくと、フォームフィールドに値(大きな小数)を入力するたびに、requiredStringfieldValidatorが起動します。(おそらく、StringをBigDecimalに変換する必要があるparamインターセプターに問題があります)。
とにかく同じフィールドに対して、REGEXである別のフィールドバリデーターがあります。
したがって、requieredStringを使用しない場合は、正規表現バリデーターだけで機能すると思いましたが、機能しません。フィールドに入力しない場合、エラーは発生しません。
だから..要約すると:
私のアクションには、受益者クラスのフィールドがあります。Beneficiairyクラスには、BigDecimalフィールドがあります。私のxml検証ファイルはこのフィールドのようなものです:
<field name="benef.nirBenef">
<field-validator type="regex">
<param name="expression"><![CDATA[^(1|2)\d{14}$]]></param>
<message key="error.securityNumber"/>
</field-validator>
フィールドが空の場合、検証はそれが大丈夫だと言います。
なぜ ?
requiredstringバリデーターを使用すると、値が適切であっても検証で間違っていると表示されます
ありがとうございました