、Strutsの入力検証
1. register.jspを作成します。
<%ページ言語@ = "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは= "UTF-8" %> <%@接頭辞のtaglib = "S"のuri = "/ストラットタグ" %> <!DOCTYPE htmlののPUBLIC " - // W3C // DTD HTML 4.01移行// EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <メタHTTP-当量= "Content-Typeの"コンテンツ= "text / htmlの;のcharset = UTF-8"> ここ<タイトル>を挿入タイトル</ TITLE> </ HEAD> <BODY> <フォームアクション=> "登録" <H2>用户注册</ H2> <S:たActionError /> ユーザ名:の<input type = "text" NAME = "ユーザ名"サイズ=」20 "> <BR> パスワード:<入力タイプ="パスワード」名前= "パスワード"サイズ= "20"> <BR> repassword:の<input type = "パスワード"名前= "パスワード"サイズ= "20"> < BR> 年齢:の<input type = "text"の名= "年齢"サイズ= "20"> < BR> 誕生日:の<input type = "text" NAME = "誕生日"サイズ= "20"> <BR>の 卒業:の<input type = "text" NAME = "卒業"サイズ= "20"> <BR> の<input type = "送信"名= "提出"サイズ= "20"> </ FORM> </ BODY> </ HTML>
2、struts.xml設定
<アクション名= "登録"クラス= "com.example.struts2.RegisterAction"> <結果名= "成功"> / registerResult.jsp </結果> <結果名= "入力"> / register.jsp </結果> </アクション>
3. registerResult.jspを作成します。
<%ページ言語@ = "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは= "UTF-8" %> <%@接頭辞のtaglib = "S"のuri = "/ストラットタグ" %> <!DOCTYPE htmlののPUBLIC " - // W3C // DTD HTML 4.01移行// EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <メタHTTP-当量= "Content-Typeの"コンテンツ= "text / htmlの;のcharset = UTF-8"> ここ<タイトル>を挿入タイトル</ TITLE> </ HEAD> <BODY> ユーザ名:<S:プロパティの値= "ユーザ名" / > <BR> パスワード:<S:プロパティの値= "パスワード" /> <BR> 年齢:<S:プロパティの値= "年齢" /> <BR> brithday:<S:プロパティの値= "brithday" /> <BR> 卒業:<S:プロパティの値= "卒業" /> <BR> </ BODY> </ HTML>
4、RegisterAction.javaを作成
パブリッククラスのRegisterActionは{ActionSupportを拡張 プライベート文字列のユーザ名。 プライベート文字列のパスワード。 プライベート文字列repassword。 プライベートint型の年齢; プライベート日の誕生日。 プライベート日の卒業。 パブリック文字列getUsername(){ 戻りユーザ名; } 公共ボイドsetUsername(文字列名){ this.username =ユーザ名; } パブリック文字列getPasswordに(){ 戻りパスワード。 } 公共ボイドするsetPassword(文字列のパスワード){ this.password =パスワード。 } パブリック文字列getRepassword(){ 戻りrepassword。 } 公共ボイドsetRepassword(文字列のrepassword){ this.repassword = repassword。 } 公共INT getAge(){ 戻り年齢; } 公共ボイドsetAge(int型の年齢){ this.age =年齢。 } 公共日getBirthday(){ 誕生日を返します。 } 公共ボイドsetBirthday(日の誕生日){ this.birthday =誕生日。 } パブリック日付getGraduation(){ 戻り卒業。 } 公共ボイドsetGraduation(日付目盛){ this.graduation =卒業。 } @Override パブリック文字列(実行){例外をスロー するSystem.out.println(「呼び出され実行」)。 成功を返します。 } @Override 公共ボイド検証(){ のSystem.out.println( "検証が起動")。 //ユーザ名的长度在4〜6 であれば(ユーザ名== NULL || username.length()<4 || username.length()> 6){ this.addActionError( "ユーザ無効")。 } IF(パスワード== NULL || password.length()<4 || password.length()> 6){ this.addActionError( "パスワード無効")。 }そうであれば(repassword == NULL || repassword.length()<4 || repassword.length()> 6){ this.addActionError( "無効repassword")。 }それ以外の場合は{(password.equals(repassword)!) this.addActionError( "パスワード同じではありません"); } {(年齢<10 ||年齢> 50)場合 、この。 } もし(ヌル==誕生日){ this.addActionError( "バースデー無効"); } (ヌル==目盛){もし this.addActionError( "卒業無効")。 } {(=誕生日ヌル=卒業&&ヌル!)であれば カレンダーC1 = Calendar.getInstance(); c1.setTime(誕生日)。 カレンダーC2 = Calendar.getInstance(); c2.setTime(卒業)。 (c1.before(C2)){場合 this.addActionError( "誕生日は卒業無効の前にあることshoud"); } } } }
validateメソッドを書き直し