解析一下题目吧,我的目的想要实现这样的一个功能
当我访问"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>