要点:
action:
1. 继承json-default包.
2. result中type=”json”.
3. result中增加回调参数 params={“callbackParameter”,”callback”},callback应与请求参数名对应.
jquery:
1. 请求中包含callback=?,callback应与action的result中参数callbackParameter的值对应.
例子如下:
Action:
@ParentPackage("json-default")
public class AjaxAction extends ActionSupport{
@Autowired
private transient AjaxTemplateBusiness ajaxTemplateBusiness;
@Action(value="demo1",
results={
@Result(name="success",type="json",
params={"callbackParameter","callback"}
)
}
)
public String demo1(){
json=JSONArray.fromObject(list).toString();
return SUCCESS;
}
}
jquery:
$.getJSON("http://www.chenhaitao1981.com/demo1.action?callback=?", function(data){
if(data.json!=""){
var mydata=JSON.parse(data.json); // json2.js
var obj;
for(var i=0;i<mydata.length;i++){
obj=mydata[i];
alert(obj.text);
}
}
});
其它:
java.io.Serializable 序列化接口
transient:变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要序列化。
struts-json:
默认会把所有get方法序列号,如果不需要序列化,可使用@JSON(serialize=false),设定该方法不需要序列化。