当程序运行完validate方法之后,下面运行什么,我想谁知道的告诉我下,谢谢。

解决方案 »

  1.   

    validate 也是攔截器的一種,下面运行的应该是ACTION
      

  2.   

    关键我看了日志,没有进入action,这是怎么回事呢?
      

  3.   

    不进入action,这个有具体的信息吗.?  就这一句话让人猜谜很难受的
      

  4.   

    问题是在validate验证完之后,到进入action之间,我不知道具体怎么个过程,再加上根本就没有进入action。日志也没用报错。
      

  5.   

    register.jsp这是提交页面:
    <%@ page contentType="text/html;charset=gbk"%>
    <%@ page import="java.util.*"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
    <html:html lang="true">
    <head>
    <title>MLDN —— 我的团</title>
    <META NAME="Generator"
    CONTENT="Struts + Spring + Hibernate + MySQL + Tomcat + CP">
    <META NAME="Author" CONTENT="发大水">
    <META NAME="Keywords" CONTENT="范德萨,SSH,tomcat,mysql">
    <META NAME="Description" CONTENT="发的飞洒的 —— www.zhinangtuan.net.cn">
    </head>
    <body>
    <center>
    <jsp:include flush="true" page="../inc/template.jsp">
    <jsp:param name="url" value="../"/>
    </jsp:include> 
    <h1>用户注册</h1>
    <html:form action="/jsp/user.do" method="post">
    用户ID:<html:text property="userid"></html:text>
    <br>
    用户密码:<html:password property="userpwd"></html:password>
    <br>
    确认密码:<html:password property="confirmpwd"></html:password>
    <br>
    丢失密码提示问题:<html:text property="userques"></html:text>
    <br>
    丢失密码问题答案:<html:text property="userans"></html:text>
    <br>
    验证码:<html:text property="checkcode"></html:text>
    <img src="image.jsp"><br>
    <input type="hidden" name="status" value="register">
    <input type="hidden" name="type" value="1">
    <html:submit value="注册"></html:submit>
    <html:reset value="重置"></html:reset>
    </html:form></center>
    </body>
    </html:html>
    UserForm:
    public class UserForm extends ActionForm {
    /*
     * Generated fields
     */ /** id property */
    private String id; /** sex property */
    private String sex; /** userid property */
    private String userid;

    /** userpwd property */
    private String userpwd;

    private String confirmpwd; private String checkcode; /** grade property */
    private String grade; /** realname property */
    private String realname; /** usermail property */
    private String usermail; /** userans property */
    private String userans; /** userques property */
    private String userques; /** integral property */
    private String integral;

    private int type;
    //1 表示注册功能
    /*
     * Generated Methods
     */ /** 
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    ActionErrors errors=new ActionErrors();
    System.out.println("aaaaaaaaaaaaaaaaa");
    System.out.println("type====["+type+"]");
    if(type==1){
    //注册
    System.out.println("type==1");
    if(this.userid==null||"".equals(this.userid)){
    errors.add("userid",new ActionMessage("user.userid.null"));
    System.out.println("1111");
    }
    if (this.userpwd == null || "".equals(this.userpwd)) {
    System.out.println("2222");
    errors.add("userpwd", new ActionMessage("user.userpwd.null"));
    } else {
    if (!(this.userpwd.equals(this.confirmpwd))) {
    System.out.println("33333");
    errors.add("configpwd", new ActionMessage(
    "user.confirmpwd.error"));
    }
    }
    if (this.userques == null || "".equals(this.userques)) {
    System.out.println("44444");
    errors.add("userques", new ActionMessage("user.userques.null"));
    }
    if (this.userans == null || "".equals(this.userans)) {
    System.out.println("555555");
    errors.add("userans", new ActionMessage("user.userans.null"));
    }
    if (this.checkcode == null || "".equals(this.checkcode)) {
    System.out.println("666666");
    errors.add("checkcode", new ActionMessage("checkcode.null"));
    }
    }
    System.out.println("wwwwwwwwwwwwwwww");
    return errors;
    } /** 
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    // TODO Auto-generated method stub
    this.checkcode = "" ;
    } /** 
     * Returns the userpwd.
     * @return String
     */
    public String getUserpwd() {
    return userpwd;
    } public String getCheckcode() {
    return checkcode;
    } public void setCheckcode(String checkcode) {
    this.checkcode = checkcode;
    } /** 
     * Set the userpwd.
     * @param userpwd The userpwd to set
     */
    public void setUserpwd(String userpwd) {
    this.userpwd = userpwd;
    } /** 
     * Returns the id.
     * @return String
     */
    public String getId() {
    return id;
    } /** 
     * Set the id.
     * @param id The id to set
     */
    public void setId(String id) {
    this.id = id;
    } /** 
     * Returns the sex.
     * @return String
     */
    public String getSex() {
    return sex;
    } /** 
     * Set the sex.
     * @param sex The sex to set
     */
    public void setSex(String sex) {
    this.sex = sex;
    } /** 
     * Returns the userid.
     * @return String
     */
    public String getUserid() {
    return userid;
    } /** 
     * Set the userid.
     * @param userid The userid to set
     */
    public void setUserid(String userid) {
    this.userid = userid;
    } /** 
     * Returns the grade.
     * @return String
     */
    public String getGrade() {
    return grade;
    } /** 
     * Set the grade.
     * @param grade The grade to set
     */
    public void setGrade(String grade) {
    this.grade = grade;
    } /** 
     * Returns the realname.
     * @return String
     */
    public String getRealname() {
    return realname;
    } /** 
     * Set the realname.
     * @param realname The realname to set
     */
    public void setRealname(String realname) {
    this.realname = realname;
    }

    public String getConfirmpwd() {
    return confirmpwd;
    } public void setConfirmpwd(String confirmpwd) {
    this.confirmpwd = confirmpwd;
    } public int getType() {
    return type;
    } public void setType(int type) {
    this.type = type;
    }

    /** 
     * Returns the usermail.
     * @return String
     */
    public String getUsermail() {
    return usermail;
    } /** 
     * Set the usermail.
     * @param usermail The usermail to set
     */
    public void setUsermail(String usermail) {
    this.usermail = usermail;
    } /** 
     * Returns the userans.
     * @return String
     */
    public String getUserans() {
    return userans;
    } /** 
     * Set the userans.
     * @param userans The userans to set
     */
    public void setUserans(String userans) {
    this.userans = userans;
    } /** 
     * Returns the userques.
     * @return String
     */
    public String getUserques() {
    return userques;
    } /** 
     * Set the userques.
     * @param userques The userques to set
     */
    public void setUserques(String userques) {
    this.userques = userques;
    } /** 
     * Returns the integral.
     * @return String
     */
    public String getIntegral() {
    return integral;
    } /** 
     * Set the integral.
     * @param integral The integral to set
     */
    public void setIntegral(String integral) {
    this.integral = integral;
    }

    }
      

  6.   


    UserAction:
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package org.lxh.myznt.struts.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    import org.apache.struts.action.ActionMessages;
    import org.apache.struts.actions.DispatchAction;
    import org.lxh.myznt.util.MD5Code;
    import org.lxh.myznt.vo.User;
    import org.lxh.myznt.dao.UserDAO;
    import org.lxh.myznt.struts.form.UserForm;
    /**
     * MyEclipse Struts Creation date: 06-30-2007
     * 
     * XDoclet definition:
     * 
     * @struts.action path="/user" name="userForm" input="/form/user.jsp"
     *                parameter="status" scope="request" validate="true"
     */
    public class UserAction extends DispatchAction {

    private UserDAO userdao; public UserDAO getUserDAO() {
    return userdao;
    } public void setUserDAO(UserDAO userDAO) {
    this.userdao = userDAO;
    } public ActionForward register(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    System.out.print("........................................进入action.....................");
    UserForm userForm = (UserForm) form;
    // 先判断验证码是否正确
    String ccode = (String) request.getSession().getAttribute("ccode");
    String checkcode = userForm.getCheckcode();
    if (!(checkcode.equals(ccode))) {
    ActionMessages errors = new ActionMessages();
    errors.add("checkcode", new ActionMessage("checkcode.error"));
    super.saveErrors(request, errors);
    return mapping.getInputForward();
    }
    // 如果正确,则需要向数据库中插入
    MD5Code md5=new MD5Code();
    User user = new User();
    user.setUserid(userForm.getUserid());
    user.setUserpwd(md5.getMD5ofStr(userForm.getUserpwd()));
    user.setUserques(userForm.getUserques());
    user.setUserans(userForm.getUserans());
    user.setGrade(1);
    // 查询此用户是否存在
    try {
    this.userdao.registor(user);
    // 成功之后要将用户名和用户等级保存在session之中
    request.getSession().setAttribute("userid", user.getUserid());
    request.getSession().setAttribute("grade", user.getGrade());
    return mapping.findForward("registersuccess");
    } catch (Exception e) {
    e.printStackTrace();
    return mapping.findForward("registerfailure");
    }
    } public ActionForward login(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    UserForm userForm = new UserForm();
    return null;
    } public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    UserForm userForm = new UserForm();
    return null;
    }}struts-config.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources />
      <form-beans >
        <form-bean name="userForm" type="org.lxh.myznt.struts.form.UserForm" />  </form-beans>  <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="userForm"
          input="/jsp/error.jsp"
          name="userForm"
          parameter="status"
          path="/jsp/user"
          scope="request"
          type="org.lxh.myznt.struts.action.UserAction"> 
          <forward name="registersuccess" path="/jsp/index.jsp"></forward>
          <forward name="registerfailure" path="/jsp/register.jsp"></forward>
        </action>  </action-mappings>
      <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
      
      <message-resources parameter="org.lxh.myznt.struts.ApplicationResources" />
      
      <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
      </plug-in>
    </struts-config>applicationContext.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/mldn"></property>
    </bean>
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.MySQLDialect
    </prop>
    <!-- 表示允许自动提交 -->
    <prop key="hibernate.connection.autocommit">true</prop>
    <!-- 显示sql语句 -->
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>org/lxh/myznt/vo/User.hbm.xml</value></list>
    </property></bean>
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
    <ref bean="sessionFactory"></ref>
    </property>

    </bean>

    <bean id="userDAO" class="org.lxh.myznt.dao.UserDAO" abstract="true"></bean>
    <bean id="userDAOImpl" class="org.lxh.myznt.dao.impl.UserDAOImpl" parent="userDAO">
    <property name="hibernateTemplate">
    <ref bean="hibernateTemplate"/>
    </property>
    </bean>

    <bean name="/jsp/user" class="org.lxh.myznt.struts.action.UserAction">
    <property name="userDAO">
    <ref bean="userDAOImpl" />
    </property>
    </bean>
    </beans>web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="2.4"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.lxh.myznt.filter.EncodingFilter</filter-class>
    <init-param>
    <param-name>charset</param-name>
    <param-value>gbk</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>  
    </context-param> 
     
    <servlet> 
    <servlet-name>context </servlet-name> 
    <servlet-class>org.springframework.web.context.ContextLoaderServlet </servlet-class> 
    <load-on-startup>1 </load-on-startup> 
    </servlet>  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>3</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    </web-app>
      

  7.   

    没这么具体看你的代码,太多了,看了下你的配置文件,用了controller控制器,那么你action里面的type="org.lxh.myznt.struts.action.UserAction">  没起作用,就是进入这个/jsp/user.do请求没有任何类处理,建议试试,
      

  8.   

    根据你的建议,我将controller控制器删除了,试试,还是老样子,没进入action。
      

  9.   

    代码好多。--
    如果你运行了validate,证明你页面上有需要判断的,并且要有对应的input属性。比如在登录界面,在登入之前,我要使用alidate去判断用户是否存在。那么在vaidate方法中运行判断,用户不存在,那么在页面上就会在input属性所对应的地方显示错误,要不就直接运行通过验证的其他action方法。
      

  10.   

    现在问题是我通过验证了,就是没有运行action方法。
      

  11.   

    不是将controller删除,你只需将type……删除,再将path值配到spring里面即可,或许加个action-servlet。xml文件,配到里面也可以,action-servlet文件在web-inf下面(个人建议),省事还是将path值配到spring里面,像你的dao类一样配置,但记得是用name,郁闷,我给你贴你代码还来的快,说了这么多,<bean name="/user" class="com.erp.struts.action.UserAction"/>  /user == 你/jsp/user,希望对你 有用,
      

  12.   

    如果验证成功就去到对应的action,失败就返回配置文件中input的路径
      

  13.   

    原因就是你的配置有问题,该。do请求没有任何action类对其处理,所以你看不到进入action,恩,应该是这样,你先试试,如果是别的原因……再说,
      

  14.   

    根据你的建议 我将type删除了,并且把applicationContext.xml中action的name值改成了“/user”,
    结果提示HTTP Status 500 - No action instance for path /jsp/user could be created
      

  15.   

    你的是name值应该是/jsp/user,我上面有说,或许你理解错了, 
      

  16.   

    我又试了一如果name值为/user,就提示错误“No action instance for path /jsp/user could be created”,name值为/jsp/user,就没有这错误了,这大概说明
    <bean name="/jsp/user" class="org.lxh.myznt.struts.action.UserAction">
    <property name="userDAO">
    <ref bean="userDAOImpl" />
    </property>
    </bean>
    程序在这就出问题了。
      

  17.   

    我要崩溃了,还是老样子
    现在提交之后显示空白页,而且没有进入action。
      

  18.   

    呵呵,我想问题不是没有进入到action,而是没有进入到具体方法,进入了unspecified方法,说明你的status参数没接收,我再去看看你的页面,
      

  19.   

    你先测试,重写unspecified这个方法,随便输出语句,
      

  20.   

    你最好将你那个空白页的URL参数贴出来,让我看下,
      

  21.   

    http://localhost:8080/MyZhiNangTuanDemo/jsp/user.do
      

  22.   

     做验证,一定要配置,input.!
      

  23.   

    郁闷,这个问题居然看半天没看出来,你有execute方法,将这个干掉,就OK了,
      

  24.   

    先前你的配置应该也是有问题的,如果去掉execute没问题了,可以试下将你的配置还原,看结果是怎样,
      

  25.   

    应该是验证没有通过吧 此时不进入到action进行处理 会返回到输入页面 
      

  26.   

    对于做验证要不要用input……
    我一向是将多余的干掉,