Struts2的下载相当麻烦,终于被搞定。但是如果下载的文件找不到,想转到其它页面提示该文件不存在,要怎么做呢?他默认是500错误页,这样太不好了。我要的是单独的提示文件没找到。各位大大有没有做过?

解决方案 »

  1.   

    最简单的办法web.ini中定义自己的500错误页。想咋写咋写
      

  2.   

    写错。。是web.xml.. - -#
      

  3.   


    我的文件是在N台远程计算机上,每天创建一次索引,当索引未更新时,文件刚好被删除了,这文件当然就不存在了。判断?要如何判断呢?struts2下载的action是返回inputstream,如何返回成一个提示的页面呢?
      

  4.   

    把response的ContentType改了不行么
      

  5.   


    这个方法我试过,是报错的。不知为何。我用的是getResponse().sendError(404);java.lang.IllegalStateException
    org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:406)
    org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:770)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    com.huawei.googol.web.filter.EncodingFilter.doFilter(EncodingFilter.java:32)
      

  6.   


    struts2的ContentType是在配置文件里配的,他的action方法是这样的:
    public InputStream getInputStream() throws Exception 
    {
     ...
    }改ContentType有何用?返回值是InputStream我的想法是这样的,能否给返回null,然后在配置文件里面配置如果返回null就跳到一个页面,但在配置文件里该如何配置呢?
      

  7.   

    在action中捕获异常
    try{
        return success;
    }catch(文件找不到){
        return error;//返回错误页
    }
    或者
    在struts.xml配制如下
    <global-results> <result name="exception">/pages/exception.jsp</result> </global-results>
    <!-- 设置全局异常 -->
    <global-exception-mappings>
    <exception-mapping result="exception" exception="文件找不到"></exception-mapping>
    </global-exception-mappings>
      

  8.   

    在web.xml里配置一个error,Exception设置成FileNotFoundException,再配置相应的页面,不就OK了吗!