1. ActionSupportにはVALIDATE()メソッドがあります。この方法は検証方法です。 execute()メソッドが実行される前に実行されるため、検証において良い役割を果たすことができます。
@Override // balidate()メソッドのアクションパブリックvoid validate(){if(null == this.username || this.username.length()<4 || this.username.length()> 6){this.addactionerror( "username invadate");}}}} a。検証が失敗した場合、AddactionError( "エラーメッセージ")を呼び出すことができます。このようにして、エラーメッセージが保存されます。
検証メソッド全体が実行されると、システムはname = "input"に対応するJSPページを自動的にチェックします。一般に、登録したページ、つまり私たちがどこから来てどこに行くのかにジャンプすることをお勧めします
/registerresult.jsp/register.jsp
b。次に、登録jspです
つまり、このstruts2タグを最初の登録ページに追加します
<s:actionerror cssstyle = "color:red"/>
意味は次のとおりです。エラーメッセージがある場合、つまりactionErrorが存在し、このエラーメッセージを出力します。
さらに、タグをCSSに設定できます
// struts2タグを使用する必要があることに注意してください。ヘッダーファイルにタグを導入する必要があることに注意してください。
c。
日付を比較する方法:
Brithdayと卒業生は日付タイプです
if(null!= Birthday && null!= graduation){Calendar c1 = calendar.getInstance(); c1.settime(barthined); calendar c2 = calendar.getInstance(); c2.settime(卒業); if(!c1.beer(c2)){this.addactionerror(be be be be be be graduation ";};2。アクションレベルとフィールドレベル。このようにして、エラーを追加するときに異なるレベルに追加できます。また、すべての情報をアクションレベルに追加せずに、エラーメッセージをプロンプトするときは、すべての情報が表示されます。例:赤いフォントを使用して、繰り返しパスワードエラーのエラーメッセージを表す必要がありますが、ユーザー名、年齢などの他の情報は緑色のフォントで表されます。この時点で、それを使用して異なるレベルに追加できます。
登録ページで、フィールドレベルのタグを書き込むだけです。次のように:
<s:actionerror cssstyle = "color:red" //アクションレベル<s:fielderror cssstyle = "color:blue"> </s:fielderror> //フィールドレベルpublic void validate() {if(null == this.username || this.username.length()<4 || this.username.length()> 6){this.addactionError( "username Invadate");3.エラーを送信した後、元の情報がフォームに表示されます。
<s:form action="RegisterAction"><s:textfield name="username" label="username"></s:textfield><s:password name="password" label="password"></s:password><s:password name="repassword" label="repassword"></s:password><s:textfield name="age" label="age"></s:textfield><s:textfield name="birthday" label = "brithday"> </s:textfield> <s:textfield name = "graduate" label = "graduate"> </s:textfield> <s:submit value = "submit"> </s:submit> </s:form>
struts2タグを使用すると、以下に示すように、間違ったフィールドレベルの情報を自動的に入力して表示できます。
4.ただし、テーブルを自動的に使用して入力するこの方法は便利ですが、多くの場合、ニーズを満たしていないため、カスタムタイプセットを使用できます。
方法2:レイアウトメソッドを簡単に定義して、HTMLメソッドで自分で入力できるようにします。
フィールドレベルのエラーは自動的に表示されません。
<s:form action = "regoltionaction" theme = "simple"> <br/> username:<s:textfield name = "username" label = "username"> </s:textfield> <br/>パスワード:<s:パスワード= "パスワード"ラベル= "パスワード" label = "Repassword"> </s:password> <br/> age:<s:textfield name = "age" label = "age"> </s:textfield> <br/>誕生日:<s:テキストフィールド名= "誕生日"ラベル= "brithday"> </s:textfield> <br/>卒業:卒業:<s:s:submatione " value = "submit"> </s:submit> </s:form>
5。セキュリティのために、方法が定義されていない場合、Strutsは郵便で提出されます。これはより安全です。
6.たとえば、入力値がメソッドに準拠していない場合、年齢はintタイプであり、入力は文字列タイプです。システムは、フィールドレベルにフィールド「年齢」の無効なフィールド値を判断して追加します。情報は次のとおりです。
実行プロセス:
1)最初にタイプ変換を実行します
2)次に、入力検証を実行します(検証メソッドを実行)
3)上記のプロセスでエラーが発生した場合、実行方法は再び実行されません。ページは、入力に対応する結果である名前のstruts.xmlのページに順番になります。
8。AddactionError()ActionSupportクラスの実装:最初にArrayListオブジェクトを作成し、ArrayListオブジェクトにエラーメッセージを追加します。
9. getActionErrors()メソッドが呼び出されると、アクションレベルのエラーメッセージリストを返す場合、返されたものは実際にはコレクション自体ではなくコレクションのコピーです。したがって、コピー内の要素は、元のコレクションの要素ではなく、コレクションコピーのclear()メソッドを呼び出すことで依然としてクリアされます。現時点では、元のコレクションのコンテンツは影響を受けていません。言い換えれば、アクションレベルのエラーメッセージリストは開発者が読むことができますが、書き込みはありません
エラーメッセージが表示された後にエラーメッセージを削除する場合、エラーメッセージがある場合でも実行メソッドを実行させます。
10. Fielderrorレベルでの基礎となるエラーメッセージは、LinkedHashmapを通じて実装されます。マップのキーは文字列タイプで、値は<文字列>タイプです。これは、フィールド名が複数のエラーメッセージに対応できることを意味し、これらのエラーメッセージはリスト<string>コレクションに配置されます。したがって、同じエラーを達成するための複数のエラーメッセージがあります
上記は、編集者によって導入されたストラットの検証()を入力するために使用される検証方法の詳細な説明です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!