Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

validationについて

現在のvalidationでは


申込者名 姓(漢字)が正しく入力されていません。{2}桁以内で入力してください。

というメッセージになってしまいます

。{2}桁以内で入力してください。

に400桁としたい場合はどこをどのように調整すればいいでしょうか??

ちなみに、validationのソースは下記のようになっております。

<?xml version="1.0" encoding="Shift_JIS" ?>

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
    <formset>
        <!-- お問い合わせ画面 -->
        <form name="pCOM034E">
            <field
                property="privacyPolicyAgreement"
                depends="required">
                    <arg0 key="privacyPolicyAgreement"/>
                    <msg name="required" key="errors.select"/>
            </field>   
            <field
                property="custNameKanjiSei"
                depends="required,mask,maxlength">
                    <arg0 key="custNameKanjiSei"/>
                    <msg name="required" key="errors.required"/>
                    <msg name="mask" key="errors.string"/> 
                    <msg name="mask" key="errors.maxlength"/>                  
                    <var>
                        <var-name>mask</var-name>
                        <var-value>^[^ -~。-゚]*$</var-value>
                    </var>
                    <var>
                        <var-name>maxlength</var-name>
                        <var-value>15</var-value>
                    </var>
            </field>
            <field
                property="custNameKanjiMei"
                depends="required,mask,maxlength">
                    <arg0 key="custNameKanjiMei"/>
                    <msg name="required" key="errors.required"/>
                    <msg name="mask" key="errors.string"/>
                    <msg name="mask" key="errors.maxlength"/>    
                    <var>
                        <var-name>mask</var-name>
                        <var-value>^[^ -~。-゚]*$</var-value>
                    </var>
                    <var>
                        <var-name>maxlength</var-name>
                        <var-value>15</var-value>
                    </var>
            </field>
        </form>
    </formset>
</form-validation>



2

回答

3107

閲覧

2件の回答

評価

0

Struts1.2の場合ですが他のバージョンでもおそらく同じだと思います。
メッセージリソースプロパティファイル(デフォルトではWEB-INF/classes/MessageResources.propertiesというファイルでstruts-config.xmlのmessage-resources要素で変更可能)には

custNameKanjiSei=申込者名 姓(漢字)が正しく入力されていません。
errors.maxlength={0}{2}桁以内で入力してください。

というキーが設定されていると思うのですが。(日本語部分はユニコードエスケープされているはずです。)
その場合には以下のようになると思います。
           <field
                property="custNameKanjiSei"
                depends="required,mask,maxlength">
                    <arg0 key="custNameKanjiSei"/>
                    <arg2 key="${var:maxlength}" resource="false"/>
                    <msg name="required" key="errors.required"/>
                    <msg name="mask" key="errors.string"/> 
                    <msg name="maxlength" key="errors.maxlength"/>                  
                    <var>
                        <var-name>mask</var-name>
                        <var-value>^[^ -~。-゚]*$</var-value>
                    </var>
                    <var>
                        <var-name>maxlength</var-name>
                        <var-value>400</var-value>
                    </var>
            </field>

<arg2 key="${var:maxlength}" resource="false"/>の${var:maxlength}は
<var-name>がmaxlengthである<var>要素の<var-value>の内容を表します。
つまり
<arg2 key="400" resource="false"/>
と等価です。
resource="false"になっているので400という値そのものが引数になります。
もしresource="false"を省略した場合や明示的にtrueを指定した場合には
メッセージリソースプロパティファイルで400というキーを探し、その値を設定する事になります。

評価

0

コードまで書いてくれて
とてもご丁寧な回答ありがとうございました
すんなりと解決できました

本当にありがとうございました。。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。