我们可以使用jsonplugin插件,下载:http://code.google.com/p/jsonplugin/downloads/list
Action中定义Map map,随意插入数据。重点是result的写法:
<result type="json"> <param name="root">map</param> </result>
这种方式,可以直接使用struts2插件,然后在root里指定Action中对象数据(map),struts2会自动把对象转换成json数据类型传到前台。格式为:
{“aVote”:“10”,“bVote”,“25”}
对于一些大型、复杂的对象同样可以转换为json。
需要注意的是,lib下加入jsonplugin.jar包; struts 2配置文件的package包要继承json-default(这个包继承了struts-default,所以不用担心),否则将无法实现。
如果稍显麻烦,或者我们的package包不想修改继承关系的话,其实有一种很简单的方法。
我们知道,后台返回ajax请求数据的时候,一般不会太复杂,顶多是几个数字,或者几条信息。我们放入一个字符串中,用指定符号分割即可。
如果返回的json数据比较复杂,可以考虑使用Jackson或者json-lib来封装数据。(推荐Jackson,速度较快)