今天下午一直在学习struts2的表单验证,可我按照资料上的验证一直都没有验证,直接执行了execute。
action代码如下:
public class UserAction extends ActionSupport { private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String login(){
if("hua".equals(userName) && "123".equals(password)){
ActionContext.getContext().getSession().put("userName", userName) ;//将用户信息存入session
return "success";
}
else{
return "input";
}
}
2.UserAction-validation.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
   "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">   <validators>
     <field name="name">
    <field-validator type="required">
    <message>required</message>
    </field-validator>
    </field>
    <field name="password">
    <field-validator type="required">
    <message>required</message>
    </field-validator>
    </field>
   </validators>3.jsp<body>
  <table>
   <s:form action="userlogin">  
  <tr><td>
<s:textfield name="userName" label="%{getText('userName')}"></s:textfield>
  </td></tr>
    <tr><td>
   <s:password name="password" label="%{getText('password')}"></s:password>
  </td></tr>
    <tr><td>
   <s:submit/>
   ${msg }
  
   </td></tr>
    </s:form>
   </table>   </body>怎么测试都不会去验证。请问为什么?哪里出错了。

解决方案 »

  1.   

    怎么个运行结果? struts.xml的配置?
      

  2.   

    这是struts.xml配置文件    <package name="user" extends="struts-default">
        
         <action name="userlogin" class="com.zyt.user.UserAction" method="login">
         <result name="success">/ret.jsp</result>
         <result name="input">/login.jsp</result>
         </action>
    2.UserAction-validation.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">   <validators>
         <field name="userName">
        <field-validator type="required">
        <message>required</message>
        </field-validator>
        </field>
        <field name="password">
        <field-validator type="required">
        <message>required</message>
        </field-validator>
        </field>
       </validators>我直接http://localhost:8080/teststruts2/login.jsp 不输入任何。还是没验证。
      

  3.   


    你直接输入jsp当然不验证 提交表单才会验证
      

  4.   

    设置了,也不可以验证。是不是要加那个包啊。验证框架对应的jar是哪个呀?
      

  5.   


    public String validateLogin(){//验证
    }
      

  6.   

    是啊,没设validate属性,验证信息就没法显示出来的。
      

  7.   

    在from设置validate属性,也验证不了。。
      

  8.   

    搞定了,看来还是粗心学了struts2,把那个验证文件要跟class同目录,一切都安静了。