web项目配置映射方案

解析一下题目吧,我的目的想要实现这样的一个功能

当我访问"http://localhost:8080/test/aa.action"时,自动匹配到struts.xml文件,里面的方法<action name="aa" class="xxxxx"><result name="success">/success.jsp</result></action>跳转到success.jsp页面

当我访问"http://localhost:8080/test/aa.do"时(或自定义后缀名.json),自动匹配到另一个struts文件,例如(struts-json.xml),里面的方法<action name="aa" class="xxxxxx"><result name="success" type="json"></result></action>,返回json数据



如何根据访问url的后缀不同匹配不同的struts.xml?(例如:访问"aa.action"匹配struts.xml,访问"aa.do"匹配struts-json.xml)


简单一句话就是,访问"aa.action"返回jsp页面,访问"aa.do"返回json数据

大神们,怎样实现??或者说有这样子实现的可能吗??

 

 

_____________________________分割线____________________________

 

 

1.先在web.xml文件中添加两个不同的拦截规则

2.在struts两个配置文件中根据两个不同的后缀进行不同的跳转处理

 

web.xml

 

	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		</filter-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


	<filter>
		<filter-name>struts</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		</filter-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>struts-default.xml,struts-plugin.xml,struts-json.xml
			</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
 

struts.xml

	<constant name="struts.action.extension" value="action" />

	<package name="sample" extends="struts-default">
		
	</package>
 

struts-json.xml

	<constant name="struts.action.extension" value="json" />

	<package name="json" extends="json-default">

	</package>
 

 

 

你可能感兴趣的:(struts)