昨天struts2整合json,一直出错:
There is no Action mapped for namespace / and action name ...
HTTP Status 404 - There is no Action mapped for action name...
发现我已经在struts.xml中继承了json-default了啊,后来发现原来是因为没有引入相应的包,在此做下总结。1、添加相应的包
2、要继承json-default
<package name="struts2" extends="json-default" namespace="/">
json-default其实也是最终继承struts-default的 json-plugn中struts-plugn.xml源码如下
<struts>
<package name="json-default" extends="struts-default">
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
</interceptors>
</package>
</struts>
这里你可以看到这个json-default是干了什么事情,无非就是:
- 加了个名为json的result类型
- 加了一层名为json的拦截器
配置完后,就可以使用Struts+json啦!