0

Struts2は初めてです。単純な「登録」フォームに検証フレームワークを使用したいと思います。これが私のJSPページフォーム要素です。

    <s:form action="register">
            <s:textfield name="name" label="Name" />
            <s:textfield name="age" label="Age" />
            <s:textfield name="email" label="email"/>
            <s:submit value="Register" />
        </s:form>  
 validation error ? = <s:actionerror /><br/>
        ---Action Message--- <s:actionmessage/>

これがstruts2.xmlファイルです。

    <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
       <package name="default" extends="struts-default">        
        <action name="register"
                class="com.action.RegisterAction">
                <result name="success">home.jsp</result>    
                <result name="input">index.jsp</result>
                </action>     
       </package>
</struts>

RegisterActionクラスには

  • 文字列名;
  • int年齢;
  • 文字列メール; ゲッターとセッターを持つ変数。そして、そのexecute()はSUCCESSを返すだけです

これらのフィールドの検証では、次の検証xmlファイルが使用されます。現在、1つのフィールドのみがチェックされます。検証ファイルの名前はRegisterAction-validation.xml

    <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<!-- Author: Aash -->     
<validators>     
    <field name="name">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>name is required.. :) </message>
        </field-validator>
    </field>    
</validators>

これがプロジェクトの構造です ここに画像の説明を入力してください

どうすればこれを思いつくことができるか教えてください。前もって感謝します。

新規追加:struts.xmlによると、エラーが発生した場合(検証で何かが間違っていることが示されます)、ページはindex.jspにリダイレクトされますが、フィールド'name'に何も指定されていない場合でも、 home.jspへ。

見つかった解決策
validation.xmlに追加しまし
!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
たが、フォームの上部に表示されます。なぜとして印刷されないのかわかりませんactionError。表示したい場所(例:フォームの下部)に印刷するにはどうすればよいですか?

4

4 に答える 4

2

これはフィールドエラーであるため、JSPページに要素を配置したため、メッセージはフィールド'name'に近づきます。あなたがそれを印刷したいのなら、あなたはそれをどこに置きたいのか、 <s:fielderror fieldName="name" />

于 2012-06-30T18:38:48.617 に答える
0

問題はxmlファイル名だと思います。そのはずRegisterAction-validation.xml

于 2012-06-30T15:21:56.890 に答える
0

これ言うように、DOCTYPEはvalidation.xmlにあるはずです。
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> -->

于 2012-06-30T18:23:08.530 に答える
0

パラメータ検証値を入れて'true; で<s:form action="register" validate="true">

于 2012-07-02T05:44:49.740 に答える