码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-28 11:49:56      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:

最近在做项目开发过程中犯了一个很低级的错误,在这里列举出来,供大家参考借鉴:我希望通过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作为Action的扩展名,就正常访问了。

原因很简单:当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>

 

注意:配置多个拓展明请用英文逗号隔开

 

原文地址:http://wsjiang.iteye.com/blog/1126063

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

标签:

原文地址:http://www.cnblogs.com/nihaorz/p/5441784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!