1
public class Admin extends ActionSupport implements ModelDriven<AdminData>
  {
   AdminData adminData = new AdminData();
   public AdminData getModel()
     {
        return adminData;
    }


   @Validations(requiredStrings ={
      @RequiredStringValidator(type=ValidatorType.FIELD,fieldName="emailId"),
    @RequiredStringValidator(type=ValidatorType.FIELD,fieldName="password")}
    public String auth()
    {
     }


     @Validations(requiredStrings ={
     @RequiredStringValidator(type=ValidatorType.FIELD,fieldName="emailId"),
        @RequiredStringValidator(type=ValidatorType.FIELD,fieldName="firstName"),
        @RequiredStringValidator(type=ValidatorType.FIELD,fieldName="surName"),
        @RequiredStringValidator(type=ValidatorType.FIELD,fieldName="password")}
   public String create() throws DatabaseException
   {

    }

}

私の問題は、create()メソッドを呼び出すときに検証に問題がないことですが、メソッドを呼び出すときに検証にauth()問題があることです。

そして、AdminData.java にすべての getset があります

4

1 に答える 1

0

デフォルトでは、Struts2 バリデーターはすべてのメソッドのすべての検証制約をチェックします。現在のメソッドに関連する検証制約のみを検索するようにストラットを構成できます。でオンにvalidateAnnotatedMethodOnlyするだけstruts.xmlです:

<struts>
    <package ...>
        <interceptors>
            <interceptor-stack name="defaultStack">

                .....

                <!-- Turning per method validation on -->
                <interceptor-ref name="validation">
                    <param name="validateAnnotatedMethodOnly">true</param>
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>

                ......

            </interceptor-stack>
        </interceptors>
    </package>
</struts>

対応するドキュメント エントリを参照してください:メソッドごとに異なる検証

于 2013-04-05T13:16:49.093 に答える