1。BALIDATE()メソッドのアクション
struts2は、このインターフェイスにvalidate()メソッドのみがある有効なインターフェイスを提供します。このインターフェイスを実装するクラスは、struts2で直接呼び出すことができます。 ActionSupportクラスはVadidateableインターフェイスを実装していますが、そのVALIDATE()メソッドは空のメソッドであり、書き換える必要があります。
検証()メソッドは、execute()メソッドの実行前に実行されます。 execute()メソッドは、データ検証が正しい場合にのみ実行されます。エラーが発生した場合、エラーがFielderrorsフィールドに追加されます。定義されたアクションに複数の論理処理方法があり、異なる処理ロジックが異なる検証ルールを必要とする場合、この場合、検証()はすべての処理ロジックに対して同じ検証ルールを使用します。さまざまな検証ロジックを実装するには、validatex()メソッドを渡す必要があります。ここで、xは処理ロジックのメソッド名を表します。
アクションクラス:
public class loginactionはactionsupportを拡張します{private static final long serialversionuid = 1l; private string username; private string userpassword; public string userpassword; public.out.println( "execute"); return success;} public string login(){system.out.println( "login"); return success;} public void validate(){system.out.println( "validata");} public void balidatelogin(){system.out.println( "validateLogin"); if(username.equals( "sbw")&userpassword.equals( "123")))))))) getUsername(){return username;} public void setusername(string username){this.username = username;} public string getuserpassword(){return userpassword;} public void setuserpassword(string userpassword){this.userpassword;}}}struts.xml
<パッケージname = "main" extends = "struts-default"> <global-results> <result name = "login">/login.jsp </result> </global-results> <action name = "loginperson" method = "login"
success.jsp
<body>ログイン<s:プロパティ値= "account"/> </body>
validatelogin.jsp
<body> <s:Fielderror/> </body>
実行結果を実行します(最初のテストは正しく、2番目のテストは間違っています)
2。XWork検証フレームワークを渡します
検証メソッドを使用して検証する場合、Webアプリケーションに多数のアクションがある場合、検証メソッドを複数回書き換える必要があります。したがって、XworkのBalidator Frameworkを使用して、Struts2データを検証してコードの量を減らすことができます。
com.actionパッケージの下に確認ファイルloginaction-validation.xmlを作成します。注:アクションに複数のビジネス処理方法がある場合、命名ルールは次のとおりです。ActionName-MethodName-Validation.xml、アクション名はアクションクラス名、MethodNameはアクションのビジネス処理メソッドのメソッド名であり、ファイルの検索注文はValidate()およびValidatex()と同じです。
login-validation.xml
<?xml version = "1.0" encoding = "utf-8"?> <!doctype validators public " - // apache struts // xwork validator 1.0.2 // en" "http://struts.apache.org/dtds/xwork-validator-1.0.2.2.dtd type = "rebuseString"> <message>名前はnull </message> </field-validator> </field> <field name = "userpassword"> <field-validator type = "rebystring"> <メッセージ> null </message> </field-validator> </field> </validators> </validators>
次のようにもう一度実行します:
上記のフィールド検証方法はフィールド検証方法であり、別の方法は次のように非フィールド検証方法です。
login-validation.xml:
<validators> <balidator type = "rebultingstring"> <param name = "fieldname"> username </param> <message>名前はnull </message> </validator> <validator type = "rebystring"> <param name = "fieldname"
結果はフィールド検証方法と同じです
添付ファイル:struts2に一般的に使用される検証剤: