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

来源:互联网 发布:网易博客发帖软件 编辑:程序博客网 时间:2024/05/17 22:27

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

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

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()方法就可以使用这两个数组了。
}
});






1 0
原创粉丝点击