Action:package action;import com.opensymphony.xwork2.ActionSupport;import entity.User;public class RegistAction extends ActionSupport{private User user;
public String regist(){
System.out.println(user.getUsername());
return "success";
}
public String form(){
return "success";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}}struts-xml:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 <struts>
<package name="cb" extends="struts-default" >
  <action name="regist" class="action.RegistAction" method="regist">
     <result name="success" type="dispatcher">
        /jsp/success.jsp
      </result>
   </action>
    <action name="form" class="action.RegistAction" method="form">
     <result name="success" type="dispatcher">
       /jsp/registform.jsp
     </result>
   </action>
</package>
</struts>
RegistAction-validation.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 <struts>
<package name="cb" extends="struts-default" >
  <action name="regist" class="action.RegistAction" method="regist">
     <result name="success" type="dispatcher">
        /jsp/success.jsp
      </result>
   </action>
    <action name="form" class="action.RegistAction" method="form">
     <result name="success" type="dispatcher">
       /jsp/registform.jsp
     </result>
   </action>
</package>
</struts> JSP
<%@page contentType="text/html;charset=utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
  <s:fielderror cssClass="color:red"/>
  <s:form method="post" action="regist" name="taskForm"  >
    <s:textfield label="用户名" name="user.username" cssErrorStyle="background-color:#ff9999" />
<s:password label="密码" name="user.password"  cssErrorStyle="background-color:#ff9999"/>
<s:textfield label="年龄" name="user.age" cssErrorStyle="background-color:#ff9999" />
<s:textfield label="邮箱" name="user.email" cssErrorStyle="background-color:#ff9999" />
<s:textfield label="手机" name="user.phone" cssErrorStyle="background-color:#ff9999" />
<s:textfield label="出生日期" name="user.birthday" cssErrorStyle="background-color:#ff9999" />
<s:submit value="确定"/>
 </s:form>    
</body>
</html>

解决方案 »

  1.   

    你都没有实现validateXXX方法,怎么验证啊。
      

  2.   


    用validator框架验证,不是写好配置文件和action类放同一个包下就行了吗,还需要实现validateXXX?能详细讲讲吗
      

  3.   

    你的验证配置文件能验证码?和你struts配置文件一样
      

  4.   


    额。。粗心了。RegistAction-validation.xml是这个
    [code=XML]
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC
       "-//OpenSymphony Group//XWork Validator 1.0.3//EN"
       "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
      <validators>
        <field name="user.username">
    <field-validator type="regex">
    <param name="expression">^pm[0-9]{6}$</param>
    <message>格式错误!</message>
    </field-validator>
    </field>
      </validators>
    [code]
      

  5.   

    <action name="form" class="action.RegistAction" method="form">
                 <result name="success" type="dispatcher">
                   /jsp/registform.jsp
                 </result>
               </action>
    提供错误的试图
    <result name="input" type="dispatcher">
                   /jsp/sorry.jsp
                 </result>
      

  6.   

    验证配置文件RegistAction-validation.xml中间应该加上需要验证的方法名,应该是RegistAction-regist-validation.xml,如果你的ACTION的方法是默认的execute就不用加。
      

  7.   

    解决了。太坑了,老师给的代码里少了这一行。从网上找由主要看Action-validation.xml