Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143903
  • 博文数量: 83
  • 博客积分: 3212
  • 博客等级: 中校
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-01 18:26
文章分类

全部博文(83)

文章存档

2011年(4)

2010年(49)

2009年(3)

2008年(27)

我的朋友
最近访客

分类: Java

2010-05-29 10:10:24

ajax已经是web开发的必选框架之一,而json更是在ajax通过解析xml来传输数据方面有了更好的发展,下面我就以自己做web开发的浅薄经验介绍一下js与struts
如何通过aja以json数据形式进行数据传输。why json but not xml?这个问题我想您会得到答案。
          注:要使用json必须导入commons-beanutils-1.7.0.jar  commons-lang-2.1.jar
                ezmorph-1.0.2.jar   json-lib-1.1-jdk15.jar另外commons-collentions最好用最新版本
      1:既然是异步那我就用到了ajax框架,下面时jsp页面中ajax框架代码和js中解析json的方法 
             try
 {
  var xmlhttp = new XMLHttpRequest();
 }
 catch(e)
 {
  var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
 }
 var url="/apple/receive.do;
 xmlhttp.open('GET',url,true);
 xmlhttp.onreadystatechange = function()    异步传输成功时
 {
  if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
  {
   var data = eval('('+xmlhttp.responseText + ')');     //或得json数据
   
   for(var i=0;i   {
    var str='’;
                                                     str+=data.js[i].chatdate;
    str+=data.js[i].message";
    txt=document.createElement('DIV');
    txt.innerHTML=str;
               document.getElementById("content").appendChild(txt); 
    str="";
   }
   
  }
 }
 xmlhttp.send();
        2:下面试action中json的组织方式。(我的数据来源是通过hibernate查询得来得,对此读者可自行处理)
  try
  {
  PrintWriter out = response.getWriter();
  JSONObject obj = new JSONObject();
  JSONArray js = new JSONArray();
  //这里的数据拼装一般是从数据库查询来的
              Iterator it = mes.iterator();
              while(it.hasNext()){
               Chat chat =(Chat)it.next();//数据库查询得到的结果
       JSONObject objtemp = new JSONObject();
                objtemp.put("chatdate",chat.getDate().substring(0,10) );
      objtemp.put("message", chat.getContent());
  js.add(objtemp);
  }
  obj.put("js",js);
  out.print(obj.toString());
  //out.print(rnd);
  
  }catch(Exception e)
  {
  e.printStackTrace();
  }
  return null;
阅读(560) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-08 11:18:00

不错