struts-config.xml 文件:  
   <action-mappings>
       <action path="/login"
               name="loginForm"
               scope="request"
               input="/test.jsp"
               validate="false"
               type="struts.TestAction"
       > 
        <exception key="user.not.found" type="struts.UserNotFound"/>
        <exception key="password.error" type="struts.PasswordIsError"/>
         <forward name="success" path="/success.jsp"/>
       
       </action>     
   </action-mappings>
   <message-resources parameter="rec.MessageRescource"/>action:
     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,         HttpServletResponse response) throws Exception {
                 TestActionForm frm =(TestActionForm)form;
                 String username = frm.getUsername();
                 String pwd = frm.getPwd();
                 UserManager um = new UserManager(username,pwd);
                 um.check();
                 return mapping.findForward("success");JSP 页面:
      <html:messages id="msg" message="user.not.found">
      <bean:write name="msg"/>
      </html:messages>
        <html:form method="post" action="login.do">
          usrname:<html:text property="username"/><br>
          password:<html:password property="pwd"/><br>
        <html:submit value="sub"/>
      </html:form>  UserManager:
        public void check(){
   if(!username.equals("admin")){
   throw new UserNotFound();
   }
   if(!pwd.equals("admin")){
   throw new PasswordIsError();
   }
       }抛出的UserNotFound异常 无法转到 jsp 页面 ,在jsp 页面显示页面信息

解决方案 »

  1.   

    你测试的时候用户名输的什么?是admin么?
      

  2.   

    validate="false" 
    这个时候iuput属性就没用了。
    对于异常在页面处理没接触过,不过从你给的配置中没有看到对抛出的UserNotFound异常的处理页面
      

  3.   

    XML 中配得Form是loginForm ,action 中用的是TestActionForm ,有问题没阿?
      

  4.   

    execute方法执行的结果是抛出了UserNotFound,之后就没处理了
      

  5.   

    写成validate="true" 它也是无法转到test.jsp 页面
    test.jsp 页面
     <html:messages id="msg" message="user.not.found"> 
          <bean:write name="msg"/> 
          </html:messages> 
            <html:form method="post" action="login.do"> 
              usrname: <html:text property="username"/> <br> 
              password: <html:password property="pwd"/> <br> 
            <html:submit value="sub"/> 
          </html:form>  
      

  6.   

    抛异常后,它拿资源文件中的信息
    <exception key="user.not.found" type="struts.UserNotFound"/> 
    拿key 值
      

  7.   

    在配置文件里面没有看到form跟action的链接。。
      

  8.   

    唉,你说你输入的是错误的用户名。而你在验证的时候  public void check(){ 
      if(!username.equals("admin")){ 
      throw new UserNotFound(); 
      } 

    抛出的了一个异常但是你哪里捕捉和处理了异常呢?
      

  9.   

     这不是 name="loginForm" 吗?