我能想到的是在form中判断有没有这个方法存在,没有就跳转到出错页面,页面就不会出现异常了,不过这样写太麻烦了 
----很麻烦吗?

解决方案 »

  1.   


    没太看懂你的描述如果UserAction中没有login这个方法,你这句话是错误的,login只是一个参数,赋给action的一个参数,你在UserAction中没有login这个方法就会出现异常`?这不对我能想到的是在form中判断有没有这个方法存在,没有就跳转到出错页面,页面就不会出现异常了,不过这样写太麻烦了
    接下来的这句话就更错了请问:有没有简单的方法?
    简单的获得url参数的方法倒是有,可那样,还用struts干什么`?直接写servlet不更简单?
    获得action的值的方法,request.getParameter("action");
      

  2.   

    login是一个参数,赋给action的一个参数。但是在UserAction中必须有一个方法叫做login
    public ActionForward login(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) 
    {
    ...
    }若UserAction中没有会怎么样呢?我能想到的是在form中判断有没有这个方法存在(希望有简单方法)String method = request.getParameter("method");
    if ("login.equals(method)) {
    // 用户登录验证
    return this.validate_0(mapping, request); } else {
    // action中没有一个方法与之对应
    return this.validate_1(mapping, request);
    }
      

  3.   

    那你就别用dispatchAction了,用普通的action,然后用if if 来判断吧,自己写代码块就是了,没有参数,默认执行某一块,自己控制,dispatchAction是struts封装的,为的就是多个逻辑处理
      

  4.   


    <global-forwards >
    <forward name="lastpage" path="/forward.jsp" redirect="true" />
    </global-forwards>配置个全局异常搞定,呵呵!
      

  5.   

    郁闷,刚才复制错了!
    <global-exceptions >
        <exception
          key="general"
          path="/error.jsp"
          type="java.lang.Exception" />

    </global-exceptions>
      

  6.   

    请问还有没有其他办法,我的项目已经是dispatchAction了,还有 <global-exceptions >
        <exception
          key="general"
          path="/error.jsp"
          type="java.lang.Exception" />
                
    </global-exceptions>  这样,但是他再控制台还是会输出异常呀,