注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

【原创】Struts2中配置JSON格式数据Ajax请求例子  

2012-11-12 17:40:31|  分类: struts |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

JSON+Struts2 例子

 

在myeclipse8.6的系列中,当添加struts2框架中,自动添加的JSON的包。

 

JSON的官网:  http://www.json.org/


JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。


JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。


值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

因为JSON中的值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array),且这些结构可以嵌套,这种特性给予JSON表达数据以无限的可能:它既可以表达一个简单的key/value,也可以表达一个复杂的Map或List,而且它是易于阅读和理解的。

 

文档的参考地址为:

https://cwiki.apache.org/confluence/display/WW/JSON%20Plugin


json格式如:


{"address":"chian","birthday":{"birthday":"2010-11-22"},"email":"email@123.com","id":22,"name":"tom"}
{"address":"chian","birthday":{"birthday":"2010-11-22"},"email":"email@123.com","id":22,"name":"tom"}

 


struts.xml 配置文件

 

Java代码 
  1. <package name="test" extends="json-default">  
  2.   <action name="jsonaction" class="com.action.json.JsonAction">  
  3.    <result type="json" >  
  4.     <!-- 排除属性  不显示userid和userage这两个字段  -->  
  5.     <param name="excludeProperties">user.userid,user.userage</param>  
  6.    </result>  
  7.   </action>  
  8. </package>  

 


action: 


 Java代码 

  1. @Controller    
  2. public class JsonAction extends ActionSupport {    
  3.  @Resource    
  4.  private IUserDao iud;    
  5.  private Users user;    
  6.  public Users getUser() {    
  7.   return user;    
  8.  }    
  9.  public void setUser(Users user) {    
  10.   this.user = user;    
  11.  }    
  12.  public String execute() {    
  13.  HttpServletResponse response=ServletActionContext.getResponse();  
  14.          response.setContentType("text/html");    
  15.         PrintWriter out;    
  16.         out = response.getWriter();    
  17.         //将要被返回到客户端的对象    
  18.         User user=new User();    
  19.         user.setId("123");    
  20.         user.setName("JSONActionGeneral");    
  21.         user.setPassword("JSON");    
  22.         user.setSay("Hello , i am a action to print a json!");    
  23.         JSONObject json=new JSONObject();    
  24.         json.accumulate("success"true);    
  25.         json.accumulate("user", user);    
  26.         out.println(json.toString());    
  27. //      因为JSON数据在传递过程中是以普通字符串形式传递的,所以我们也可以手动拼接符合JSON语法规范的字符串输出到客户端    
  28. //      以下这两句的作用与38-46行代码的作用是一样的,将向客户端返回一个User对象,和一个success字段    
  29. //      String jsonString="{\"user\":{\"id\":\"123\",\"name\":\"JSONActionGeneral\",\"say\":\"Hello , i am a action to print a json!\",\"password\":\"JSON\"},\"success\":true}";    
  30. //      out.println(jsonString);    
  31.         out.flush();    
  32.         out.close();   
  33.  }    
  34. }  

 



JSP页面:

 

 

Java代码 
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%@ taglib uri="/struts-tags" prefix="s"%>  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.  <head>  
  6.   <title>xmlAction</title>  
  7.   <meta http-equiv="pragma" content="no-cache">  
  8.   <meta http-equiv="cache-control" content="no-cache">  
  9.   <meta http-equiv="expires" content="0">  
  10.   <script type="text/javascript" src="jQuery/jquery-1.5.2.js">  
  11. </script>  
  12.   <script type="text/javascript">  
  13. function getjsoninfo() {  
  14.  var val = $("#person").val();  
  15.  $.ajax( {  
  16.   type:"post",  
  17.   url : "jsonaction.action",  
  18.   data : "user.userid=" + val,  
  19.     success : function(data) {  
  20.    alert(data.user.username); //该user必须和action中的属性同名!  
  21.   }  
  22.  });  
  23. }  
  24. </script>  
  25.  </head>  
  26.  <body>  
  27.   <center>  
  28.    <s:select id="person" list="userlist" listKey="userid"  
  29.     listValue="username"></s:select><!-- 下拉列表 -->  
  30.    <input type="button" value="getjsoninfo" onclick="getjsoninfo()">  
  31.   </center>  
  32.  </body>  
  33. </html>  
  评论这张
 
阅读(601)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016