2013-08-02 3 views
2

Я пытаюсь проверить форму с помощью аннотации проверки Struts2, но она не работает и не отображает требуемую метку на ярлыках. Вот мой код:Проблема с проверкой Struts2

login.jsp:

<s:form action="/Login" validate = "true">  
<table> 
    <tr> 
    <td><s:label theme=”simple” required="true">Username :</s:label></td> 
    <td><s:textfield name="userName" theme=”simple” /></td> 
    </tr> 
    <tr> 
    <td><s:label theme=”simple” required="true">Password :</s:label></td> 
    <td><s:textfield name="password" theme=”simple” /></td> 
    </tr> 
    <tr> 
     <td><s:submit value="Login" /></td> 
    </tr> 
</table> 
</s:form> 

LoginAction.java:

public class LoginAction extends ActionSupport { 
    private String userName; 
    private String password; 

    @Validations(requiredStrings={@RequiredStringValidator(type=ValidatorType.FIELD, message="User Name can ot be empty.", fieldName="userName")}) 
    public String getUserName() { 
     return userName; 
    } 
    public void setUserName(String userName) { 
     this.userName = userName; 
    } 

    @Validations(requiredStrings={@RequiredStringValidator(type=ValidatorType.FIELD, message="Password can ot be empty.", fieldName="password")}) 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 

    public String execute() 
    { 
     return SUCCESS; 
    } 
} 

struts.xml:

<struts> 
    <package name="demo" extends="struts-default"> 
     <action name="*" class="mypkg.action.{0}Action"> 
      <result name="success">/success.jsp</result> 
      <result name="input">/index.jsp</result> 
     </action> 
    </package> 
</struts> 

Может кто-нибудь помочь и заметить, если что-то не так с моим кодом?

+0

'<имя действия = "*" класс =" mypkg.action {0} Действие ">' попробуйте и убедитесь, что вы делаете это правильно. Пожалуйста, опубликуйте stacktrace также –

+0

Я использовал то же самое. Это только вопрос, который не работает. –

+0

отсутствует я думаю. –

ответ

0

Если вы используете аннотацию Validations, тогда вы должны поместить ее на метод действия. Аннотации валидатора размещаются на методе . Также вы используете validate = "true", что означает проверку на стороне клиента. Убедитесь, что у вас есть javascript (с помощью <s:head/>), и темы, подобные xhtml или css_xhtml, применимы к форме, чтобы сделать ошибки проверки видимыми. То есть тема simple здесь не работает, удалите ее из полей.

Если вы не указали тему, то Struts 2 по умолчанию использует тему xhtml .

Referrences:.

Смежные вопросы