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
。表示したい場所(例:フォームの下部)に印刷するにはどうすればよいですか?