Ext2.2与Struts2集成,使用Json数据格式传输数据问题
2008-09-15 16:59
756 查看
Struts2与Ext集成生成Tree关键问题
1.Struts2 使用jsonplugin插件进行格式化java对象,其返回的数据格式为
{"xxx":"[{json}]"},其中xxx为需要返回数据的名称,json为返回json的具体内容,Ext树要求的json格
式为[{json}].
2.Struts2 返回json时其他包含双引号,导致数据返回时会自动加上转义符"/"。
以上三个问题解决办法
1:最简单办法是重写treeloader中的processResponse对服务器返回数据进行格式化,取得其中json数据,
关键代码:
loader:new Tree.TreeLoader({
dataUrl:'TreeAjax.action',
processResponse:function(response,node,callback){
var data = response.responseText;
var temp=Ext.decode(data);
var json=temp["xxx"];
try {
var o = eval("("+json+")");
node.beginUpdate();
for(var i = 0, len = o.length; i < len; i++){
var n = this.createNode(o[i]);
if(n){
node.appendChild(n);
}}
node.endUpdate();
if(typeof callback == "function"){
callback(this, node);
}
}catch(e){
this.handleFailure(response);
}
}
}),
其中xxx为服务器返回json的名称。与问题1对应。
2.问题2简单解决办法是在action或拦截器中对返回数据进行处理,处理办法很简单,既将数据中的“ " ”用
“ ' ”(双引号 用单引号代替),数据传回客服端不回自动加上转义符。
关键代码:
mString.append(JSONUtil.serialize(menu));
for(int i=0;i<mString.length();i++){
if(mString.charAt(i)=='/"'){
mString.setCharAt(i, '/'');
}
}
该实例页面为example下的tree/reorder.html
1.Struts2 使用jsonplugin插件进行格式化java对象,其返回的数据格式为
{"xxx":"[{json}]"},其中xxx为需要返回数据的名称,json为返回json的具体内容,Ext树要求的json格
式为[{json}].
2.Struts2 返回json时其他包含双引号,导致数据返回时会自动加上转义符"/"。
以上三个问题解决办法
1:最简单办法是重写treeloader中的processResponse对服务器返回数据进行格式化,取得其中json数据,
关键代码:
loader:new Tree.TreeLoader({
dataUrl:'TreeAjax.action',
processResponse:function(response,node,callback){
var data = response.responseText;
var temp=Ext.decode(data);
var json=temp["xxx"];
try {
var o = eval("("+json+")");
node.beginUpdate();
for(var i = 0, len = o.length; i < len; i++){
var n = this.createNode(o[i]);
if(n){
node.appendChild(n);
}}
node.endUpdate();
if(typeof callback == "function"){
callback(this, node);
}
}catch(e){
this.handleFailure(response);
}
}
}),
其中xxx为服务器返回json的名称。与问题1对应。
2.问题2简单解决办法是在action或拦截器中对返回数据进行处理,处理办法很简单,既将数据中的“ " ”用
“ ' ”(双引号 用单引号代替),数据传回客服端不回自动加上转义符。
关键代码:
mString.append(JSONUtil.serialize(menu));
for(int i=0;i<mString.length();i++){
if(mString.charAt(i)=='/"'){
mString.setCharAt(i, '/'');
}
}
该实例页面为example下的tree/reorder.html
相关文章推荐
- 解决在OFFICE平台传输数据慢的问题,使用GZIP+JSON替代WEBSERVICE提供数据
- 使用Ajax发送Struts2请求返回JSON数据格式
- 利用Jquery让返回的各类数据(string、集合(List<>)、类)以Json数据格式返回,为什么要用到result.d (JQuery ajax 返回数据 使用 .d 的问题)
- 在使用ajax向后台发送json数据,存在格式不正确的问题
- 基于.NET的JSON数据传输格式问题总结
- 使用jQuery框架的ajax技术,在Struts2返回json格式的数据
- 使用Struts2写的接口实现接收json格式的数据
- 在使用JSON格式处理数据时应该注意的问题
- 用JSON做数据传输格式中的一些问题总结
- 用JSON做数据传输格式中的一些问题总结
- Android网络通信中数据传输的JSON格式使用
- jQuery UI Autocomplete 使用 ajax 方法传输Json数据出现乱码问题的解决
- 在使用JSON格式处理数据时应该注意的问题小结
- ajax根据ID查询数据库并返回Json格式数据返回js,使用append显示到页面。判断json值为[]或者[[]]的问题。
- SSH三大框架集成中,使用jQuery框架 Ajax技术返回json格式的数据(二)
- 使用xml/json格式传输数据 spring mvc(HttpMessageConverter<T>的使用)
- 使用json格式最为数据传输的格式,代码混淆后数据没有上传成功
- Struts2与ExtJs Grid结合使用json格式数据
- 谈谈 webservice -- axis2框架的使用,JSON数据的传输问题
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题