struts2中如何将json格式的数据传到前端呢??json-default就是你要找的答案

上班的时候遇到了这类问题,百思不得其解,但最后还是被我征服了,拿来与大家分享:

哎哟,不错哦!吐舌头吐舌头吐舌头搞懂下面的代码就够了大笑大笑大笑

struts.xml核心文件中的写法为:

<package name="default" namespace="/" extends="json-default">
    <action name="myTest" class="cn.com.gjw.MyTest" method="test">
         <result type="json">
             <param name="root">str</param><!-- 注意str,它是干什么的呢? -->
         </result>
   </action>
 </package>


action(即MyTest类)中的写法为:

package cn.com.gjw;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
public class MyTest {

private String str; //str是不是在哪里出现过呢??对,就是struts.xml中
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public String test() {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("name","人事部");
map.put("weight","100");
list.add(map);

map = new HashMap<String, String>();
map.put("name","策划部");
map.put("weight","50");
list.add(map);

map = new HashMap<String, String>();
map.put("name","外联部");
map.put("weight","80");
list.add(map);

map = new HashMap<String, String>();
map.put("name","主席团");
map.put("weight","120");
list.add(map);

map = new HashMap<String, String>();
map.put("name","组织部");
map.put("weight","200");
list.add(map);

map = new HashMap<String, String>();
map.put("name","宣传部");
map.put("weight","100");
list.add(map);

str = JSONObject.toJSON(list).toString();
return "success";
}
}


前端页面使用jquery的ajax方法接收数据,其中data就是从后台传过来的json格式的字符串,注意:data不用提前定义。代码为:

$.ajax({
url:"myTest.action",
type:"get",
dataType:"json",
error:function(e) {
alert("失败");
},
success:function(data) {
//alert("成功:"+data);

//将json格式的字符串转为原来的格式
var json = $.parseJSON(data);
var name = new Array();
var weight = new Array();
for(var i = 0; i < json.length; i++) {
name.push(json[i].name);
weight.push(json[i].weight);
}
test(name, weight);//下面定义一个test()方法就可以使用这两个数组了。
}
});






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值