asamiのメモ帳

[Struts/入力値チェック]の変更点

「Struts/入力値チェック」の編集履歴(バックアップ)一覧はこちら

Struts/入力値チェック」(2008/07/10 (木) 13:33:16) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**入力値チェックがしたい 【やりたいこと】 名前と年齢を必須入力にする。 年齢に数値が入力されているかをチェックする。 チェックにひっかかったら、output.jspにはとばずに、 input.jspにとどまって、エラーメッセージを表示する。 【input.jspの編集】 input.jspにエラーメッセージを表示させるために、 表示させたい場所に<html:errors/>と追記する。 input.jsp(赤文字は追加部分) #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ <%@ page contentType="text/html; charset=Shift-JIS"%> <%@ taglib uri="/struts-html.tld" prefix="html" %> <html> <head><title>入力画面</title></head> <body> 名前・年齢をを入力し、血液型を選択してください。 <br> &color(red){<html:errors/>} <html:form action="/sendData" focus="name"> &space(2)名前: &space(2)<html:text property="name" size="16"/> &space(2)<br> &space(2)年齢: &space(2)<html:text property="age" size="8" /> &space(2)<br> &space(2)血液型: &space(2)<html:select property="bloodtype"> &space(4)<html:option value="A">A</html:option> &space(4)<html:option value="B">B</html:option> &space(4)<html:option value="O">O</html:option> &space(4)<html:option value="AB">AB</html:option> &space(2)</html:select> &space(2)<br><br> &space(2)<html:submit property="submit" value="送信"/> &space(2)<br><br> </html:form> </body> </html> }} 【TestActionForm.javaの編集】 継承をActionFormからValidatorFormにすることで、 入力チェックを有効にします。 TestActionForm.java(青文字は変更部分) #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ import org.apache.struts.&color(blue){validator.ValidatorForm}; public class TestActionForm extends &color(blue){ValidatorForm} { &space(2) &space(2)private String name; &space(2)private String age; &space(2)private String bloodtype; &space(2) &space(2)public String getAge() { &space(4)return age; &space(2)} &space(2)public void setAge(String age) { &space(4)this.age = age; &space(2)} &space(2)public String getBloodtype() { &space(4)return bloodtype; &space(2)} &space(2)public void setBloodtype(String bloodtype) { &space(4)this.bloodtype = bloodtype; &space(2)} &space(2)public String getName() { &space(4)return name; &space(2)} &space(2)public void setName(String name) { &space(4)this.name = name; &space(2)} } }} 【struts-config.xmlの編集】 入力値チェックができるように、追記。 actionタグの「validate」は入力値チェックを行うかどうか、「input」はチェックに引っかかった場合にどのページに遷移するか。 plug-inタグはチェックをするために必要なプラグイン、設定ファイルについて記述。 struts-config.xml(赤文字は追記部分) #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE struts-config PUBLIC &space(2)"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" &space(2)"&html(http://struts.apache.org/dtds/struts-config_1_1.dtd)"> <struts-config> &space(2)<form-beans> &space(4)<form-bean name="form" type="TestActionForm" /> &space(2)</form-beans> &space(2)<action-mappings> &space(4)<action path="/sendData" type="TestAction" name="form" &color(blue){validate="true" input="/jsp/input.jsp"}> &space(4)&space(2)<forward name="success" path="/jsp/output.jsp" /> &space(4)</action> &space(2)</action-mappings> &space(2) &space(2)<message-resources parameter="ApplicationResources"/> &space(2) &space(2)&color(blue){<plug-in className="org.apache.struts.validator.ValidatorPlugIn">} &space(4)&color(blue){<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />} &space(2)&color(blue){</plug-in>} </struts-config> }} 【validation.xmlの作成】 どんなチェックをするかをここに記述。 WEB-INFの下に作ってください。 同時に、WEB-INF/validator-rules.xmlが存在するか確認してください。 年齢のチェックでは、 ・年齢が入力されているか、数値かどうかをチェックします(fieldタグ) ・入力されていないときは、(ApplicationResources.propertiesであとで記述する)errors.requiredを表示します。(msgタグ1) ・数値出ないときは~.propertiesで記述したerrors.integerを表示します。(msgタグ2) ・そのときに引数で~.propertiesで記述したageを渡します。(arg0タグ) validation.xml #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ <?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE form-validation PUBLIC &space(2)"-//Apache Software Foundation// DTD Commons Validator Rules Configuration 1.1.3//EN" &space(2)"&html(http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd)"> <form-validation> &space(2)<formset> &space(4)<form name="form"> &space(6)<field property="name" depends="required"> &space(10)<msg name="required" key="errors.required" /> &space(10)<arg0 key="name"/> &space(6)</field> &space(6) &space(6)<field &space(8)property="age" depends="required,integer"> &space(10)<msg name="required" key="errors.required" /> &space(10)<msg name="integer" key="errors.integer" /> &space(10)<arg0 key="age"/> &space(6)</field> &space(6) &space(4)</form> &space(2)</formset>&space(2) </form-validation> }} 【ApplicationResources.propertiesの編集】 ここには表示するメッセージなどを記述します。 errors.*と記述されているものは、 input.jspで<html:errors/>と記述したところに表示されます。 ・headarはエラーメッセージ出力前に1回出力される。 ・footerはエラーメッセージが全て出力後に1回出力される。 ・suffixは各エラーメッセージの最後に出力される ・{0}はvalidation.xmlのarg0タグに設定したものが出力される。 Application.properties #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ errors.header=<font color=red> errors.footer=</font> errors.suffix=<br> name=氏名 age=年齢 errors.required={0}を入力してください。 errors.integer={0}には数値を入力してください。 }} 【実行するとこんなカンジ】 &ref(output1.jpg) &ref(output2.jpg) &ref(output3.jpg)
**入力値チェックがしたい 【やりたいこと】 名前と年齢を必須入力にする。 年齢に数値が入力されているかをチェックする。 チェックにひっかかったら、output.jspにはとばずに、 input.jspにとどまって、エラーメッセージを表示する。 【input.jspの編集】 input.jspにエラーメッセージを表示させるために、 表示させたい場所に<html:errors/>と追記する。 input.jsp(赤文字は追加部分) #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ <%@ page contentType="text/html; charset=Shift-JIS"%> <%@ taglib uri="/struts-html.tld" prefix="html" %> <html> <head><title>入力画面</title></head> <body> 名前・年齢をを入力し、血液型を選択してください。 <br> &color(red){<html:errors/>} <html:form action="/sendData" focus="name"> &space(2)名前: &space(2)<html:text property="name" size="16"/> &space(2)<br> &space(2)年齢: &space(2)<html:text property="age" size="8" /> &space(2)<br> &space(2)血液型: &space(2)<html:select property="bloodtype"> &space(4)<html:option value="A">A</html:option> &space(4)<html:option value="B">B</html:option> &space(4)<html:option value="O">O</html:option> &space(4)<html:option value="AB">AB</html:option> &space(2)</html:select> &space(2)<br><br> &space(2)<html:submit property="submit" value="送信"/> &space(2)<br><br> </html:form> </body> </html> }} 【TestActionForm.javaの編集】 継承をActionFormからValidatorFormにすることで、 入力チェックを有効にします。 TestActionForm.java(青文字は変更部分) #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ import org.apache.struts.&color(blue){validator.ValidatorForm}; public class TestActionForm extends &color(blue){ValidatorForm} { &space(2) &space(2)private String name; &space(2)private String age; &space(2)private String bloodtype; &space(2) &space(2)public String getAge() { &space(4)return age; &space(2)} &space(2)public void setAge(String age) { &space(4)this.age = age; &space(2)} &space(2)public String getBloodtype() { &space(4)return bloodtype; &space(2)} &space(2)public void setBloodtype(String bloodtype) { &space(4)this.bloodtype = bloodtype; &space(2)} &space(2)public String getName() { &space(4)return name; &space(2)} &space(2)public void setName(String name) { &space(4)this.name = name; &space(2)} } }} 【struts-config.xmlの編集】 入力値チェックができるように、追記。 actionタグの「validate」は入力値チェックを行うかどうか、「input」はチェックに引っかかった場合にどのページに遷移するか。 plug-inタグはチェックをするために必要なプラグイン、設定ファイルについて記述。 struts-config.xml(赤文字は追記部分) #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE struts-config PUBLIC &space(2)"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" &space(2)"&html(http://struts.apache.org/dtds/struts-config_1_1.dtd)"> <struts-config> &space(2)<form-beans> &space(4)<form-bean name="form" type="TestActionForm" /> &space(2)</form-beans> &space(2)<action-mappings> &space(4)<action path="/sendData" type="TestAction" name="form" &color(blue){validate="true" input="/jsp/input.jsp"}> &space(4)&space(2)<forward name="success" path="/jsp/output.jsp" /> &space(4)</action> &space(2)</action-mappings> &space(2) &space(2)<message-resources parameter="ApplicationResources"/> &space(2) &space(2)&color(blue){<plug-in className="org.apache.struts.validator.ValidatorPlugIn">} &space(4)&color(blue){<set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />} &space(2)&color(blue){</plug-in>} </struts-config> }} 【validation.xmlの作成】 どんなチェックをするかをここに記述。 WEB-INFの下に作ってください。 同時に、WEB-INF/validator-rules.xmlが存在するか確認してください。 年齢のチェックでは、 ・年齢が入力されているか、数値かどうかをチェックします(fieldタグ) ・入力されていないときは、(ApplicationResources.propertiesであとで記述する)errors.requiredを表示します。(msgタグ1) ・数値出ないときは~.propertiesで記述したerrors.integerを表示します。(msgタグ2) ・そのときに引数で~.propertiesで記述したageを渡します。(arg0タグ) validation.xml #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ <?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE form-validation PUBLIC &space(2)"-//Apache Software Foundation// DTD Commons Validator Rules Configuration 1.1.3//EN" &space(2)"&html(http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd)"> <form-validation> &space(2)<formset> &space(4)<form name="form"> &space(6)<field property="name" depends="required"> &space(10)<msg name="required" key="errors.required" /> &space(10)<arg0 key="name"/> &space(6)</field> &space(6) &space(6)<field &space(8)property="age" depends="required,integer"> &space(10)<msg name="required" key="errors.required" /> &space(10)<msg name="integer" key="errors.integer" /> &space(10)<arg0 key="age"/> &space(6)</field> &space(6) &space(4)</form> &space(2)</formset>&space(2) </form-validation> }} 【ApplicationResources.propertiesの編集】 ここには表示するメッセージなどを記述します。 errors.*と記述されているものは、 input.jspで<html:errors/>と記述したところに表示されます。 ・headarはエラーメッセージ出力前に1回出力される。 ・footerはエラーメッセージが全て出力後に1回出力される。 ・suffixは各エラーメッセージの最後に出力される ・{0}はvalidation.xmlのarg0タグに設定したものが出力される。 Application.properties #divstyle(background-color:#FFFFCC;width:400px;height:200px;overflow:auto;){{ errors.header=<font color=red> errors.footer=</font> errors.suffix=<br> name=氏名 age=年齢 errors.required={0}を入力してください。 errors.integer={0}には数値を入力してください。 }} 【実行するとこんなカンジ】 &ref(output1.jpg) &ref(output2.jpg) &ref(output3.jpg) 合計:&counter()

表示オプション

横に並べて表示:
変化行の前後のみ表示: