`
アリス
  • 浏览: 7401 次
  • 性别: Icon_minigender_1
  • 来自: 福建
文章分类
社区版块
存档分类
最新评论

Struts2+JQuery,json数据格式请求响应

阅读更多
[1] model

日期类型需要装换,setBirthday中的@JSON(format="yyyy-MM-dd")规定前台页面输入日期格式为yyyy-MM-dd.

用户类
import java.util.Date;
import org.apache.struts2.json.annotations.JSON;

/**
 * 类名: User.java<br />
 * 类描述:用户
 * @version: 1.0
 * @date: 2013-4-6 下午6:43:44
 * **/
public class User {
	private Integer userId;
	private String username;
	private Date birthday;
	private Parents parents;
	
	public Integer getUserId() {
		return userId;
	}
	public String getUsername() {
		return username;
	}
	public Date getBirthday() {
		return birthday;
	}
	public Parents getParents() {
		return parents;
	}
	public void setUserId(Integer userId) {
		this.userId = userId;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	@JSON(format="yyyy-MM-dd")
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public void setParents(Parents parents) {
		this.parents = parents;
	}
}


用户类中的双亲类
/**
 * 类名: Parents.java<br />
 * 类描述:双亲
 * @version: 1.0
 * @date: 2013-4-6 下午7:10:26
 * **/
public class Parents {
	private String falther;
	private String mother;
	
	
	public String getFalther() {
		return falther;
	}
	public String getMother() {
		return mother;
	}
	public void setFalther(String falther) {
		this.falther = falther;
	}
	public void setMother(String mother) {
		this.mother = mother;
	}
}



调用到的Action.
使用json格式对应User类向服务端传输数据,之后使用json格式向客户端发出响应.
public class AddUserAction extends ActionSupport {
	private User user;
	/** result: 表示操作是否成功 **/
	private Boolean result;
	
	/** 方法描述:set方法,客户端->服务端	**/
	public void setUser(User user) {
		this.user = user;
	}
	/** 方法描述:get方法,服务端->客户端	**/
	public Boolean getResult() {
		return result;
	}

	@Override
	public String execute() throws Exception {
		System.out.println("用户名:" + user.getUsername() + 
				"\n生日:" + user.getBirthday() + 
				"\n父亲:" + user.getParents().getFalther() + 
				"\n母亲:" + user.getParents().getMother());
		result = true;
		return SUCCESS;
	}
}



struts.xml配置
	<package name="default" extends="json-default" namespace="/">
	<!-- 使用json格式想服务器发送数据 -->
		<interceptors>
			<interceptor-stack name="IStack">
				<interceptor-ref name="json" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="IStack" />
	<!-- 使用json格式想服务器发送数据 -->
	
		<action name="addUserAction" class="net.arisu.module.user.event.AddUserAction">
			<result name="success" type="json">/test.jsp</result>
		</action>
	</package>



页面
jsonBuildWithObject("parents", parentsKeys, parentsValues),表示自定义对象,parents对应user内的自定义对象,parentsKeys和parentsValues为parents中的属性和值;
jsonBuild("user", key, value, 1)中,user对应action中的user,key和value为user中的属性和值,1表示user中包含n个自定义对象(这里就parents一个),value数值的值会比key多出n个;
	<title>test</title>
	<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
	<script type="text/javascript" src="js/stringUtils.js"></script>
  	<script type="text/javascript">
  		$(function(){
  		});
  		
  		function add() {
			var parentsKeys = new Array("falther", "mother");
			var parentsValues = new Array($("#falther").val(), $("#mother").val());
			var key = new Array("username", "birthday");
			var value = new Array($("#username").val(), $("#birthday").val(),
					jsonBuildWithObject("parents", parentsKeys, parentsValues));
//组合json数据格式,方便发送
			var json = jsonBuild("user", key, value, 1);
		
			$.ajax({
				type : "post",
				data : json,
				url : "addUserAction.action",
				contentType : "application/json",
				success : function(returnedData, status) {
					if (!returnedData.result) {
						alert("error");
					} else {
						alert("success");
					}
				}
			});
  		}
  	</script>	
</head>

<body>
	用户名 <input id="username" type="text" value="张三"/>
	生日	  <input id="birthday" type="text" value="2000-11-11" checked="checked">
	父亲      <input id="falther" type="text" checked="checked" value="李四">
	母亲	  <input id="mother" type="text" checked="checked" value="王五"><br>
	<input type="button" value="添加" onclick="add()">
</body>



js工具类,stringUtils.js,调用的方法如上,
/**
 * 描述:拼接json字符串
 * @param objectName 对象名称
 * @param key 属性名称
 * @param value 属性值
 * @returns {String}
 * @version: 1.0  
 * @date: 2012-10-13 上午10:46:10 
 */
function jsonBuild(objectName, key, value) {
	var result = "{'" + objectName + "':{'";
	for ( var i in value) {
		if (i < key.length) {
			if(i < key.length - 1) {
				result += key[i] + "':'" + value[i] + "','";
			} else {
				if (key.length != value.length) 
					result += key[i] + "':'" + value[i] + "',";
				else
					result += key[i] + "':'" + value[i] + "'}";
			}
		} else {
			if (i == value.length - 1) 
				result += value[i] + "}";
			else 
				result += value[i] + ",";
		}
	}
	result += "}";
	return result;
}

/**
 * 描述:拼接json字符串
 * @param objectName 对象名称
 * @param key 属性名称
 * @param value 属性值
 * @returns {String}
 * @version: 1.0  
 * @date: 2012-10-13 上午10:46:10 
 */
function jsonBuildWithObject(objectName, key, value) {
	var result = "'" + objectName + "':{'";
	for ( var i in key) {
		if (i < key.length - 1)
			result += key[i] + "':'" + value[i] + "','";
		else
			result += key[i] + "':'" + value[i] + "'}";
	}
	return result;
}
分享到:
评论

相关推荐

    基于Java的学生成绩管理系统,Spring+Jquery UI+Ajax,优秀毕业设计源代码+答辩PPT,新手必看!

    Struts2——请求响应 Spring——java对象注入 Spring JDBC——数据库连接 Jquery UI——界面设计 JFreeChart——成绩分析 iText——成绩打印PDF格式 Ajax+Json——表单验证 系统登录用户: 学生用户(学号+密码+...

    中学生学生成绩管理分析系统

    系统主要使用技术:Struts2——请求响应 Spring——java对象注入 Spring JDBC——数据库连接 Jquery UI——界面设计 JFreeChart——成绩分析 iText——成绩打印PDF格式 Ajax+Json——表单验证 用户角色: 学生用户...

    java命名规范 开发规范

    统一采用全路径请求,URL格式: 1&gt; basePath/web/moduleName/*_ *.action {1}  EntityName,{2}  ActionMethodName 2&gt; basePath/web/moduleName/gotoXxx.action (无需调用Service,直接跳转) 包括jQuery的Ajax...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java开源包2

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java开源包1

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包11

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包3

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包6

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包5

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包10

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包4

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包8

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包7

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包9

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包101

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    Java资源包01

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

Global site tag (gtag.js) - Google Analytics