2011-11-27 102 views
2
<form-bean name="RegisterForm" type="com.mysite.form.RegisterForm" /> 

<action path="/register" type="com.mysite.action.RegisterAction" name="RegisterForm" input="/register.jsp" validate="true"> 
       <forward name="success" path="/welcome.jsp" /> 
       <forward name="failure" path="/register.jsp" /> 
      </action> 

RegisterForm的Struts忽略驗證方法

public class RegisterForm extends ActionForm{ 
private String name; 

    /** 
    Constructor 
    Set+Get 
    **/ 

    public ActionErrors validate(ActionMapping mapping, ServletRequest request) { 

     ActionErrors errorList = new ActionErrors(); 
     System.out.println("VALIDATING"); 
     return errorList; 
    } 
} 

這是我的所有。出於某種原因,似乎控制流直接跳轉到ActionForm的execute方法,因爲我甚至無法在控制檯中看到VALIDATING消息。有什麼我失蹤?謝謝!

+0

嘗試是ValidatorForm而不是ActionForm來驗證你的動作形式,讓我知道結果。 – Naved

+0

給定的代碼不是真正的代碼,因爲它不能編譯(公共而不是公共)。嘗試將@Override註釋添加到validate方法中,以確保實際上覆蓋了ActionForm的validate方法。另外嘗試在ActionErrors中包含錯誤:您可能會錯過控制檯中的VALIDATING消息。 –

+0

@JBNizet它是真實的代碼,但我編輯它,因爲有很多驗證,並沒有指出把這些放在這裏。 methos覆蓋父方法。 – TGM

回答

1

您需要使用其他重載的validate()方法,它的HttpServletRequest