struts2 jquery ajax返回json类型数据遇到的问题总结

<script>
$(document).ready( function() {
var url = '请求路径';
//获取表单值,并以json的数据形式保存到params中
var params = {
参数名:参数值
//上行结尾决对不加逗号(,)。如果加了在IE6下就不能运行实现了。
}
//使用$.post方式
$.post(
url, //服务器要接受的url
params, //传递的参数
function cbf(data){ //服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据
var a = eval("("+data+")"); //包数据解析为json 格式 处理a;
},
'json' //数据传递的类型 json
);
});
</script>
在action中:
String result;
public String getResult() {
return result;
}
Map<String, String> map = new HashMap<String, String>();
将要传送到jsp的值放在map中然后用
JSONObject jo = JSONObject.fromObject(map);
this.result = jo.toString();

最后在配置文件中配置
<result type="json" name="方法名">
<param name="root">result</param>
</result>

就行了,但是要注意的是,[color=red]返回的json数据中就是放在map中的数据不能有和其他表或自身关联的数据,要是有用下面代码:
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter(){
public boolean apply(Object source, String name, Object value) {
if(name.equals("") || name.equals("")) { //要过滤的areas ,Map对象中的
return true;
} else {
return false;
}
}
}
);
将和其他表或自身表关联的字段去除。
还有一点要注意的是map中要是有date类型的数据传到jsp页面解析后为[object object]不能正常显示出来原因是它被解析为:"time\":{\"nanos\":0,\"time\":1281075630000,\"minutes\":20,\"seconds\":30,\"hours\":14,\"month\":7,\"year\":110,\"timezoneOffset\":-480,\"day\":5,\"date\":6}解决方法有两种:1.在action中将date类型转换成字符串类型存放在map中;2.在jsp中将时间在拼成串,这个方法我没试过[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值