zoukankan      html  css  js  c++  java
  • struts2中怎样处理404?

    眼下在做一个网络应用程序,struts2 + spring + hibernate,server是tomcat。希望用户在IE地址栏乱敲的时候。所敲入的全部没有定义的URL都能被程序捕捉到,然后转到一个自制的404错误处理页面。

    首先查阅网上的资料,得知能够在web.xml中增加这么一段:

    <error-page>
       <error-code>404</error-code>
       <location>/error/404.jsp</location>
    </error-page>

    这样,所以未找到的404错误都会转到/error/404.jsp接受处理。

    可是经过试验,我发现以.action结尾的URL会先被struts2框架所捕获,而不会直接转入web.xml中配置的处理页面。这样,假设在struts.xml没有配置对应的action,则会在tomcat里输出错误:

    严重: Could not find action or result
    There is no Action mapped for namespace / and action name ******. - [unknown location]

    尽管最后也能转入web.xml中配置的处理页面,可是这样在命令台瞎输出一些东西,很不便于程序的管理和调试,所以还得想办法让struts2框架处理没有定义的action。

    查阅网上资料。发现能够在struts.xml中,加入一个默认的package。然后在这个默认的package中。加入一个默认的action,让这个action转向404错误处理页面:

    <package name="default" extends="struts-default">
       <default-action-ref name="notFound" />
       <action name="notFound">
        <result>/error/404.jsp</result>
       </action>
    </package>

    默认的package的特点就在于不定义namespace属性,这样全部没有定义的namespace都会转向这里。

    name="default"是为了便于阅读,事实上name是什么都能够,也能够为空:name=""。

    然后还要在其他已定义的package中也加入默认的action。转向404错误处理页面。

    这样就能够全然处理全部的404错误了。

  • 相关阅读:
    moduleNotFoundError:No module named 'exceptions'
    python 给视频加入音频
    实现时间按要求次数增长‘2020-07-14 10:46:05’
    2020年第37周,6h,继续实现CBOW模型
    2020年第36周,3h,学习手工实现CBOW模型
    2020年第35周, 5.5h, 精读TKDE'16论文
    2020年第34周,13.5h,精读论文
    2020年第33周,3.5h,完成编写项目的测试文档和本周周报
    2020年第32周,8h,调研科研的新想法
    2020年第31周,19h,准备并完成seminar
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7260225.html
Copyright © 2011-2022 走看看