struts 如何设置默认action呢?
我要达到的目的是:访问不存在的action时自动跳转到默认的action
在struts.xml中添加:
<!-- 404页面 --> <default-action-ref name="notFound" /> <action name="notFound" class="com.common.action.error.NotFoundErrerAction"> <result name="success">/error/not_found.jsp</result> </action>
效果如下:
action aaa/xxx.action 不存在,所以自动跳转到了notFound.
但是现在有一个问题,如果我的url是http://localhost:8082/shop_goods/acc 时,界面如下:
这是为什么呢?
我检查我的web.xml发现struts 过滤器配置如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
所以struts只会处理url后缀名为action的,比如xxx.action,abc.action.
解决方法:struts 过滤器配置改为:
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
修改之后的效果:
如果struts过滤器非要使用*.action呢?
那么需要在web.xml中添加:
<error-page> <error-code>404</error-code> <location>/error/not_found.jsp</location> </error-page>
这样,访问http://localhost:8082/shop_goods/acc 也会自动跳转到/error/not_found.jsp
注意:上述页面(/error/not_found.jsp)不能有struts 标签
相关推荐
Struts2.0是Java Web开发中的一个框架,它的核心组件是Action,它负责处理用户的请求并进行业务逻辑处理。相较于Struts 1.x,Struts 2.0的Action模型有着显著的区别。 在Struts 1.x中,Action类需要继承`org.apache...
Struts2 动态调用 Action 指定方法及默认 Action 配置 Struts2 框架中,一个 Action 可以包含多个处理逻辑,而不是只有一个 execute() 方法。在实际开发中,我们经常需要在一个 Action 中实现多个处理逻辑,这样...
在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...
在Struts2框架中,Action类是业务逻辑处理的核心组件,它负责接收并处理来自用户的请求。本实例探讨了如何让一个Action类处理多个请求,这在开发中常见于需要集中处理相似请求的情况,可以提高代码复用性和结构的...
同时,我们还定义了一个名为"HelloWorld"的Action,并将其设置为默认Action的目标Action。 三、 默认Action的使用场景 默认Action的使用场景非常广泛,以下是一些常见的使用场景: * 当用户访问一个不存在的...
5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据,支持动态属性访问和方法调用。 6. **插件系统**:Struts2拥有丰富的插件库,如Tiles、...
- **`redirect-action`**: 相对于 `redirect`,`redirect-action` 类型的 Result 只能用于重定向到当前应用中的另一个 Action,并且默认情况下只能在同一命名空间内跳转。这种方式不会改变浏览器地址栏中的 URL,...
11.3.1 Struts 2默认的TextProvider Re-sourceBundle搜索算法 248 11.3.2 从包中取得消息文本 251 11.3.3 使用i18n标签指定包 254 11.3.4 参数化本地化文本 255 11.3.5 格式化日期和数字 256 11.4 覆盖框架默认的...
默认情况下,Struts 2会调用Action类中的`execute()`方法。 2. **Struts.xml**: 这是Struts 2的配置文件,用于配置Action、拦截器等组件。 3. **Interceptors (拦截器)**: 拦截器用于处理Action执行前后的一系列...
### Struts2的Action详解 #### 一、引言 在Web开发领域,Struts框架因其优秀的MVC架构设计而广受欢迎。随着技术的发展,Struts框架也经历了从1.x到2.0的重大升级。本文将重点介绍Struts 2.0中的核心组件——Action...
5. **OGNL表达式**: OGNL(Object-Graph Navigation Language)是Struts2的默认表示语言,用于在Action、值栈和视图之间传递数据。 6. **Tiles和FreeMarker**: Struts2可以与Tiles框架集成,用于创建可重用的页面...
这行配置告诉Struts2不再使用默认的.action后缀,而是接受无扩展名的URL。但是,这样做可能会导致其他未配置的Action无法被正确识别,因此你需要确保每个Action都有对应的无扩展名映射。例如: ```xml ...
默认情况下,Struts2会调用Action类中的execute方法来处理请求。但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml <action ...
本文将深入解析`struts.xml`中的Action配置,帮助开发者更好地理解和运用这一关键组件。 首先,Action配置是Struts2中定义业务逻辑入口的关键,它将HTTP请求映射到特定的Java类方法上。在`struts.xml`中,一个...
默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。...
1. struts-default.xml:提供默认的配置,包含默认拦截器栈和拦截器定义。 2. struts-plugin.xml:插件的配置文件,如果使用Struts2插件,会加载该文件。 3. struts.xml:用户自定义的配置文件。 4. struts....
为了让Struts能够使用Spring来创建Action实例,需要在Struts配置文件(通常为`struts.xml`)中设置`objectFactory`属性为`spring`。 ```xml <!-- 自动默认使用spring对象工厂 --> <constant name="struts....
总结来说,Struts2的配置文件主要涉及到了核心框架的各个组成部分,包括但不限于Action的定义、拦截器的配置以及结果类型的设置等。通过合理的配置,开发者可以轻松地构建出复杂且灵活的应用程序架构。
这些配置可以实现URL映射,指定Action类及其方法,以及设置默认结果页面。 3. **Action类**:Action类是处理用户请求的入口,其中包含了一系列的执行方法,每个方法对应一个HTTP请求。通过注解或配置文件可以将请求...
在Struts2的配置文件`structs.xml`中,你可以添加一个常量配置来指定请求和响应的默认编码格式。例如,如果你的项目中中文字符采用GBK编码,可以在`structs.xml`中添加以下代码: ```xml <constant name="struts....