对于前面的例子,如果使用XmlHttpRequest实现AJAX,依赖于在服务器端使用Response对象生成返回结果。在struts 1.x版本中,这一点不成问题,但对于struts2中,其MVC框架中隐藏了Request、Response这些对象。不过这一点问题不大,我们仍然可以使用某些手段取得这些对象。但这不是本节讲述的内容,本节主要讲述struts2下的AJAX工具jsonplugin,它是由Google发布的,也算是身出名门,其官方首页为http://cwiki.apache.org/S2PLUGINS/json-plugin.html
该插件可以将Action类中的属性(带getter和setter的成员变量)以JSON格式返回,与struts2集成的相当完美,只需在映射配置文件中做很少的改动即可。
本节只讲述如何使用jsonplugin,有关struts2的使用及JSON格式说明,请参考本人相关的文章。
JSON入门
与jsonplugin相关的内容体现在如下几个文件中:
为了避免麻烦,我仍然使用最原始的XmlHttpRequest请求方式,相关JS代码如下所示:
与例1最大的改变在于使用如下代码
var o = eval("(" + oRequest.responseText + ")");
获取返回的JSON对象。
这个与标准的struts2映射配置的区别为,在package标签中,extends的属性为“json-default”,而不是“struts-default”,同里,对每个action标签中的result,添加属性
type="json"
这个类与标准的struts2 Action类没有任何区别。