日期:2014-05-20  浏览次数:20859 次

struts2中的json格式数据如何传到页面 js如何获取得到
action中:
  我要得格式如:[{"title":"中国啊","chr_id":"1234","images":"01.jsp"},{"title":"中国","chr_id":"1234","images":"01.jsp"}]
于是将list遍历 然后拼接:
List jdtList=newsService.findForIsfouce();
StringBuffer sb=new StringBuffer();
sb.append("[");
for(Object obj:jdtList){
NewsDTO dto=(NewsDTO) obj;
sb.append("{").append("title").append(":'").append(dto.getTitle())
.append("',").append("chr_id").append(":").append(dto.getChr_id()).append(",")
.append("images").append(":'").append(dto.getImage()).append("'},");
}
sb.deleteCharAt(sb.length()-1);
sb.append("]");
这样拼接出来就是我要的格式了,但是现在 我要jsp页面的js中如下代码处:
<script type="text/javascript">
  var pics="images/01.jsp###images/02.jsp";  
  var title="中国啊###中国";
</script>
也就是要把里面的 图片拼接在 pics处,标题拼接在title处(当然一一对应的!)

问题:
  我如何将action中的json数据传到页面
  js中如何获取又如何解析。不用ajax和jquery可以实现嘛!
  这个页面是首页也就是 其实js中要实现的就是网站上看到的首页焦点图。
谢谢 分不多啦,感激不尽!!

------解决方案--------------------
这样拼接出来就是我要的格式了,

有一个包叫json.jar搜一下。只要用out.print(JSONObject.fromObject(obj).toString())
在前台,很多JS框架,都可以设置获取数据的格式

比如jquery type:'json'

或者你直接用eval(数据)
------解决方案--------------------
调用JSONObject.fromObject这个要下2个包。。
List list = new ArrayList();
Map map = new HashMap();
map.put("id",100);
map.put("name",100);
list.add(map);
out.print(JSONObject.fromObject(list).toString());
return null;

用jquery。。
$.getJSON("xxx.action",function(data)
{
for(var i = 0;i < data.length;i++)
{
var id = data[i].id;
var name =data[i].name;
}
});
------解决方案--------------------
function loadAuotCityList() {
$.ajax({
type: "POST", //post请求
url: "index.action", //请求action的URL
dataType:"json",//返回类型
success: function(result){ //回调函数
if(result.success) {
apdata = eval(result.data);
} else {
alert("ERROR:" + result.data);
}
}
});
}
再在struts2的配置文件配置一个返回json数据的类型.
action直接拼写成一个json数据的string.....返回即可