这种情况一般是因为标签的使用错误引起的,如果用ide(jbuilder等)有时会发现不了,这时直接用tomcat运行的话,是可以看到错误标识的。

解决方案 »

  1.   

    struts?
    兄台,你们项目有多大?呵呵!~
      

  2.   

    ActionErrors errors = new ActionErrors();if(!errors.empty()) {
             saveErrors(request, errors);
             return (new ActionForward(mapping.getInput()));
          }
      
          // 把userinfo对象存入session
          session.setAttribute(Constants.USER_LOGIN, UC);
          return mapping.findForward("success");
    我是这样做的在ACTION里然后在JSP中<html:errors/>
    就可以了
      

  3.   

    异常处理?跟struts没有关系,该怎么处理就怎么处理,最后如果你有异常跑到了action里面
    try
    {
    }
    catch(SQLException se)
    {
       return 统一的异常错误页面
    ]
    当然如果有很多的异常的话,你可设定异常类型
      

  4.   

    struts还得灵活用吧,关于错误的处理,是需要一个机制的比如在数据处理这一层 或者 业务逻辑这一层, 这时你不可能操作页面显示错误,那只有抛出异常。 而在action 这一层你就要捕获这些异常,对于不同的异常,写一个友好明白的错误信息,forward 到一个错误显示的jsp 或者 直接将错误显示在当前页。而一个通畅的错误传递和处理机制式需要一番设计的
      

  5.   

    xinshou1979330(Success.java)所说的是,在actionservlet中如何把异常送到页面,在jsp页面上也有捕捉的话,就可以把后台的异常送到页面。这样解决肯定是对的。
    但是,我遇到的最挠头的问题并不是这样的,而是如楼主所说的那种,很多时候有空白页,也有时候会出现编译错误,无法编译完整。这样的情况很多时候是由于struts的标签错误导致的,不知道现在是否有比较好的方法来处理这类问题,每次遇到这样的情况,我都是尽量把页面上的东西删的差不多,让它在编译的时候报错,但是很多时候是无法确定到底错误是在什么地方产生的。
      

  6.   

    是哦是哦!
        就是因为白板的原因太多太多,有时查半天可能是个很小的问题,真格是郁闷了。    就如上面 rex0y(没学好九阳神功就妄想几小时练成乾坤大挪) 说的要一个通畅的错误传递和处理机制式需要一番设计的。而这个设计,有没有一个通用的模式啊?当然不同的问题还是有不同处理方式的。但从分层来说还是有一定通用的方法的,希望大家接着说。
      

  7.   

    struts很多错误都是标签上的错误,一错误就空白了。
    如果是针对代码的,还是自己写一个可以显示抛错误的。
    好像ActionErrors也只是保存errors的串,对客户/用户来说没多大意义,
    即使有完善的错误描述,维护起来也比较麻烦吧。
      

  8.   


    struts使用了宣称式异常处理。
    在struts-config.xml文件里是这样定义的:
        <global-exceptions>
            <exception
                handler="com.dmk.strutstest.CustomizedExceptionHandler"
                key="org.apache.struts.action.Exception"
                path="/Error.jsp"
                scope="request"
                type="java.lang.Exception" />
        </global-exceptions>
    也就是说,你需要捕获什么样的错误类型就在global-exceptions里写出它的类型。当错误发生里,就会交给比如“error.jsp”来处理。
      

  9.   

    还有一种方法,可以用logger来进行测试,这是比较流行的做法了~~
      

  10.   

    我用一个类继承Action类,重载perform,再捕捉异常,跳转到错误页。这样可以把除JSP页面错误以外的错误都处理掉。
    public ActionForward perform(ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response)
        {
    try
    {
                    
            //处理请求信息
        forwardTo = perForm(mapping, form, request, response);//自己写的处理方法
    }
    catch(Exception e)
    {
       forwardTo = "syserr";
      }
    return(mapping.findForward(forwardTo));