首先:当struts2的"url-pattern"设置为"/*"时,此时Struts2的扩展名就默认为.action,所以使用.json这个扩展名就会访问不到。如果任然坚持使用.json这个扩展名,有三种发放来更改Struts2 Actin的扩展名。
在Struts2中,所有动作类有一个默认的后缀 .action 扩展。 例如,
<struts> <package name="default" namespace="/" extends="struts-default"> <action name="SayStruts2"> <result>pages/printStruts2.jsp</result> </action> </package> </struts>
如要访问“SayStruts2”动作类,需要使用以下网址:
Action URL : http://localhost:8080/Struts2Example/SayStruts2.action
配置动作扩展
Struts 2是允许配置扩展名的,要对其进行更改,只需要声明一个常数“struts.action.extension”值:
1. html 扩展
更改动作类为 .html 的扩展名。
<struts> <constant name="struts.action.extension" value="html"/> <package name="default" namespace="/" extends="struts-default"> <action name="SayStruts2"> <result>pages/printStruts2.jsp</result> </action> </package> </struts>
现在,可以通过访问“SayStruts2”动作类,使用如下URL:
Action URL : http://localhost:8080/Struts2Example/SayStruts2.html
2. 不使用扩展
动作类更改为空的扩展。
<struts> <constant name="struts.action.extension" value=""/> <package name="default" namespace="/" extends="struts-default"> <action name="SayStruts2"> <result>pages/printStruts2.jsp</result> </action> </package> </struts>
现在,可以通过如下的URL来访问“SayStruts2' 动作类:
Action URL : http://localhost:8080/Struts2Example/SayStruts2