struts2的struts.xml配置文件,给我们的感觉好像是根据业务类返回的结果,导航不同的页面。然而我们的ajax请求返回的东西需要json字符串时,则此配置就不能满足我们的要求了。
要想action为我们返回json字符串,需执行下面几个步骤:
首先:必须到struts2的lib目录中,复制struts2-json-plugin-2.2.1.jar(以struts2.2.1为例)到工程的WEB-INF/lib目录中。
其次:将struts.xml文件中的package的extends写成:
<package name="default" namespace="/" extends="json-default">
再次:修改action的result如下例:
<action name="findall" class="findAllAction" method="execute"> <result type="json"/> </action>
此处, 的type="jason"表示,向浏览器输出的不是网页了,而是将HTTP响应(Response) 的MIME类型设为“application/json”输出文本。
最后:大功造成,只需要在action类中如findAllAction类,添加需要返回的json数据的getter方法, 便可向页面或ajax输出json文件数据了。