目前在做一个网络应用程序,struts2 + spring + hibernate,服务器是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错误了。
相关推荐
在Struts2中,全局结果集(Global Results)是一种设计模式,它允许开发者定义一组通用的结果,这些结果可以在整个应用中重用,而无需在每个Action类中单独配置。这提高了代码的复用性和维护性。 全局结果集的概念...
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
例如,我们可以设置一个名为`404`的全局结果,指向一个专门处理404错误的JSP页面。 ```xml <result name="404">/error/404.jsp ``` 3. **配置文件调整**: 在`struts-default.xml`或自定义的配置文件中,...
例如,全局错误页面或登录重定向可以作为全局结果设置,当任何Action执行失败时,都会跳转到这些结果。 6. **FilterDispatcher配置**:在web.xml中,你需要配置FilterDispatcher(或StrutsPrepareAndExecuteFilter...
2. **配置struts.properties或struts.xml**:在`struts.properties`或`struts.xml`配置文件中,设置`struts.i18n.resource.bundles`属性,指定资源文件的基名。例如: ```xml <constant name="struts.i18n....
9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一处理应用程序中抛出的异常,提高代码的可维护性。 10. **国际化与本地化**:Struts2支持多语言环境,可以通过资源包(properties文件...
这篇博文主要探讨的是如何在Struts2中设置和使用全局异常提示属性文件。 首先,我们要理解Struts2的异常处理机制。当控制器或业务逻辑抛出异常时,Struts2框架会捕获这些异常并根据配置决定如何响应。默认情况下,...
- **标签库**:Struts2提供了丰富的标签库,可以帮助开发者快速构建表单和页面元素,提高开发效率。 - **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录...
10. **异常处理**:Struts2提供了全局异常处理机制,可以捕获并处理Action执行过程中的异常,提供统一的错误页面。 以上就是基于Struts2实现网页注册涉及的主要知识点。通过这个项目,开发者能够了解到如何组织MVC...
8. **Validation框架**:Struts2提供了强大的表单验证功能,可以在Action级别或全局级别定义验证规则。 9. **Plug-in扩展性**:Struts2支持丰富的插件系统,可以方便地集成其他框架,如Spring、Hibernate等。 在`...
4. **结果类型(Result Types)**:Struts2支持多种结果类型,如`dispatcher`(默认,将结果转发到JSP页面)、`stream`(用于文件下载)、`redirect`(重定向URL)等,可以根据不同的需求选择合适的结果类型。...
10. **异常处理**:Struts2提供了全局的异常处理机制,通过`<global-exception-mappings>`标签定义异常映射,可以统一处理各类运行时异常。 "Struts2-part01"可能包含的是该系列学习的第一部分内容,可能涵盖了...
3. **配置文件**:Struts2的配置文件通常是`struts.xml`,定义了Action与结果的映射,过滤器设置,拦截器链等。它允许开发者以声明式的方式配置应用程序的行为。 4. **拦截器(Interceptor)**:拦截器是Struts2的...
此外,Struts2也支持自定义验证逻辑和全局错误处理。 7. **Struts ValueStack(值栈)** ValueStack是Struts2的核心组件之一,它是一个数据存储结构,用于管理Action上下文中的对象。Action中的属性会被放入...
Struts2提供了一套全局的异常处理机制,可以在struts.xml中配置全局异常映射,以统一处理各种异常。 8. **页面跳转与数据传递**:在Struts2中,Action类的方法返回的结果名对应一个视图,如jsp页面,同时可以通过...
6. **错误和异常处理**:Struts2的全局异常处理机制可以捕获并处理程序运行时的异常,提供统一的错误提示。 7. **表单验证**:Struts2提供了强大的表单验证功能,可以在Action类中定义验证规则,或者使用XML配置...
Struts2的全局异常处理机制允许开发者定义全局的错误页面或Action,统一处理应用中抛出的异常。这通常通过`<global-exception-mappings>`和`<global-results>`配置实现。 六、插件体系 Struts2拥有丰富的插件系统...
4. **OGNL (Object-Graph Navigation Language)**: OGNL是Struts2中的表达式语言,用于在Action对象和JSP页面之间传递数据。它允许动态访问和修改对象的属性,以及执行复杂的逻辑操作。 5. **Token机制**: - **...
在Struts2中,OGNL被用作默认的表达式语言,用于在Action类和JSP页面之间传递数据,以及在Action上下文中进行动态方法调用。 在Struts2的配置文件中,如struts.xml或struts.properties,你可以看到OGNL表达式的使用...