`
wsjiang
  • 浏览: 393962 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2 Action扩展名的三种修改方法

阅读更多

      最近在做项目开发过程中犯了一个很低级的错误,在这里列举出来,供大家参考借鉴:我希望通过Url请求一个Action,最终通过服务器的处理能得到一个Json串,所以我在Url中体现这一特点,将action的扩展名写为xxaction.json,在web.xml 中将struts2过滤设置成了全部拦截,代码如下:

<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

 

 


      最后在采用这种方式访问action的时候,页面就抛出404错误,找不到服务器资源。朋友看了后,使用.action作为Actin的扩展名,就正常访问了。

      原因很简单:当struts2的"url-pattern"设置为"/*"时,此时Struts2的扩展名就默认为.action,所以使用.json这个扩展名就会访问不到。如果任然坚持使用.json这个扩展名,有三种发放来更改Struts2 Actin的扩展名。

 

方法一:

      配置struts.xml 文件内容:

<struts> <constant name="struts.action.extension" value="json" /> //注意这里 <package name="default" extends="struts-default" namespace="/"> <action name="helloword" class="com.test.HelloWord"> <result name="success">/test/helloWord.jsp</result> </action> </package> </struts>

 

 


 

方法二: 

     在struts.properties 文件中加入一行配置信息:struts.action.extension=json

 

方法三:

     在web.xml文件中给filter加上init-param属性,代码如下所示

<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> <init-param> <param-name>struts.action.extension</param-name> <param-value>json</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.json</url-pattern> </filter-mapping>  


 

 

     注意: 以上所有方法,需要注意的是action的扩展名更改了之后,<url-pattern>*.json</url-pattern>,此处的配置要么是"/*",要么与更改之后的 扩展名一致。若配置不一致,例如配置为"*.html",当访问时的扩展名为html时,能通过Struts2的过滤,但是会报404错误;当访问时扩展名为json时,Struts2的过滤都不能通过。

分享到:
评论

相关推荐

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    本篇文章将详细介绍如何在Struts2中去除.action后缀,以及Struts1中隐藏.do扩展名,使URL更加简洁。 首先,让我们来看看Struts2的情况。在Struts2中,默认情况下,所有的请求都会映射到.action结尾的URL上。为了...

    struts 2 action 动态调用

    ### Struts 2 Action 动态方法调用详解 #### 一、引言 在Struts 2框架中,Action动态方法调用是一项非常实用的功能。它允许开发者在一个Action类中定义多个处理方法,而不仅仅局限于传统的`execute()`方法。这种...

    struts2文件上传的两种方法

    - 安全性:确保上传的文件类型安全,避免XSS、CSRF等攻击,可以使用过滤器或者在Action中检查文件扩展名。 - 错误处理:处理文件上传失败的情况,如文件过大、格式不正确等,提供友好的错误提示。 以上就是Struts2...

    Struts2调试方法

    Struts2是一款流行的Java Web框架,它为开发者提供了一种模型-视图-控制器(MVC)架构,便于构建可维护、可扩展的Web应用程序。在开发过程中,调试是解决问题和优化代码的关键环节。了解并掌握Struts2的调试方法对于...

    struts2的API耦合与动态方法调用

    动态方法调用是Struts2的一种强大功能,它允许根据不同的用户请求动态决定执行哪个Action方法。主要有以下两种方式: 1. **基于struts.xml配置**:在配置文件中,可以为每个action指定一个默认的方法,比如`&lt;action...

    struts2讲义

    - 修改Action类中的`execute`方法,使其返回一个字符串,代表后续的操作或页面跳转。 9. **配置结果页面跳转** - 在`struts.xml`中配置结果页面的跳转规则。 #### 三、Struts2开发流程分析 ##### 3.1 Struts2...

    java struts如何隐藏提交后缀.action, .do.zip

    是指通过将JSP页面映射到Servlet,然后在Servlet中处理逻辑,最后通过`RequestDispatcher.forward()`或`Response.sendRedirect()`方法将控制权转交给JSP页面,这样URL中就不会显示JSP扩展名。 6. **网站根目录的...

    struts2动态访问调用-method方法

    在传统的Struts2配置中,一个Action通常对应一个方法,通过URL路径与Action名进行绑定。然而,当业务需求变得复杂时,这样的设计可能不够灵活。`method`属性的引入,使得我们可以根据用户请求中的参数来决定执行哪个...

    struts2讲义,讲解struts2的框架

    在`web.xml`配置文件中,需要定义一个名为`struts2`的过滤器,类为`org.apache.struts2.dispatcher.FilterDispatcher`。过滤器的映射应覆盖所有URL,以便所有请求都能被Struts2处理。当FilterDispatcher初始化时,它...

    struts2.pdf

    2. **路由决策**:核心控制器`FilterDispatcher`根据URL中的Action名和配置文件(struts.xml)中的定义来确定应调用哪个Action。 3. **执行拦截器链**:在调用具体的Action之前,会首先经过一系列的拦截器。这些拦截...

    struts2实战.pdf

    7. **动态方法调用(Dynamic Method Invocation,DMI)**:Struts2允许通过Action方法名动态调用Action,这提高了代码的灵活性,减少了配置工作。 8. **Tiles插件**:Tiles是Struts2的一个扩展,用于构建复杂的布局...

    struts2学习心得

    4. **POJO Action类**:Struts2支持使用简单的JavaBean作为Action类,这种被称为POJO(Plain Old Java Object)的Action类继承自`ActionSupport`类,可以重写其方法来处理请求。通过这种方式,开发者可以避免在...

    Struts2 应用程序示例

    7. **插件(Plugins)**:Struts2有许多插件,如 strut2-convention-plugin,它简化了Action和结果的配置,通过类名和方法名推断配置。 在Eclipse中,你可以导入这个Struts2AppDemo项目,然后配置好JDK和Tomcat,...

    struts2的新闻管理系统

    Struts2是一个强大的Java web开发框架,主要用于构建和维护可扩展、易于测试的MVC(Model-View-Controller)应用程序。这个"新闻管理系统"项目,是针对初学者设计的一个实践平台,旨在帮助他们理解并掌握Struts2的...

    struts批量修改数据

    在处理批量修改数据的任务时,Struts框架提供了强大的支持,允许开发者构建可扩展且易于维护的系统。下面我们将深入探讨Struts在批量修改数据方面的关键知识点。 首先,我们关注`UserForm.java`。这通常是一个...

    struts2 最新jar包

    6. **struts2-convention-plugin.jar**:这是Struts2的约定优于配置插件,它可以自动根据Action类和方法的命名规则进行映射,简化了配置工作。 7. **struts2-tiles-plugin.jar**:Tiles是用于布局和组合页面的框架...

    黑马Struts2视频(day2)

    - 拦截器是Struts2的一大特色,它在Action调用前后执行一系列预定义的逻辑,如日志记录、权限检查、数据验证等,增强了框架的可扩展性和灵活性。 4. **配置文件详解**: - `struts.xml`是Struts2的主要配置文件,...

    struts2漏洞利用工具

    Struts2是一款流行的Java Web框架,它为开发者提供了一种模型-视图-控制器(MVC)架构,便于构建可维护、可扩展的企业级应用程序。然而,Struts2在历史上曾出现过一系列的安全漏洞,其中一些是高危的,允许攻击者...

    struts2最新版源码文件

    Struts2是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化和可扩展的方式来构建动态网站应用程序。这个源码包是Struts2的2.3.20版本,官方的最新版本,...

    Struts2 in Action 中文版

    根据提供的信息,我们可以推断出这是一段与《Struts2 in Action》中文版书籍相关的文字片段,尽管其中包含了一些无法直接理解的内容(可能是乱码或者是排版问题),但还是可以从中提取一些关键信息来构建关于Struts2...

Global site tag (gtag.js) - Google Analytics