日期:2014-05-16  浏览次数:20333 次

Struts2+JQuery+JSON应用

使用JSON需要引人下列jar包:


json-lib-2.3-jdk15.jar?
commons-beanutils-1.7.0.jar?
commons-httpclient-3.1.jar?
commons-lang-2.3.jar?
commons-logging-1.0.4.jar?
commons-collections-3.1.jar?
ezmorph-1.0.3.jar?

?

?

?

jsp文件:

?

<head>
<script type="text/javascript">
$(document).ready( function() {
		//使用 Ajax 的方式 判断登录
		$("#btn_login").click( function() {
			var url = 'ajaxLogin.action';
			//获取表单值,并以json的数据形式保存到params中
			var params = {
				loginName:$("#loginName").val(),
				password:$("#password").val(),
				aa:"测试"
			}
			//使用$.post方式	
			$.post(
				url,		//服务器要接受的url
				params,		//传递的参数		
				function cbf(data){	//服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据
					//alert(data);
					var member = eval("("+data+")");	//包数据解析为json 格式  
					$('#result').html("欢迎您:  "+member.name+"<br>您的密码是:"+member.password);
				}, 
			   'json'	//数据传递的类型  json
			);
		});
	});
</script>
	</head>
	<body>
		<center>
			<table>
				<tr>
					<td>
						<span>用户名:</span>
					</td>
					<td>
						<input type="text" id="loginName" name="loginName">
					</td>
				</tr>
				<tr>
					<td>
						<span>密码:</span>
					</td>
					<td>
						<input type="password" name="password" id="password">
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<input type="button" id="btn_login" value="Login" />
					</td>
				</tr>
			</table>
			<p>
				这里显示ajax信息:
				<br />
				<span id="result"></span>
			</p>
		</center>
	</body>

?

对应的AJAXLoginAction:

?

public class AjaxLoginAction extends ActionSupport {

	// 用户Ajax返回数据
	private String result;
	// struts的属性驱动模式,自动填充页面的属性到这里
	private String loginName;
	private String password;
	
	
	//测试aa
	private String aa;
	
	public String getAa() {
		return aa;
	}


	public void setAa(String aa) {
		this.aa = aa;
	}


	public String getResult() {
		return result;
	}


	public void setResult(String result) {
		this.result = result;
	}


	public String getLoginName() {
		return loginName;
	}


	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}


	public String getPassword() {
		return password;
	}


	public void setPassword(String password) {
		this.password = password;
	}


	@Override
	public String execute() {

		System.out.println("-----aa="+aa+"-----");
		// 用一个Map做例子
		Map<String, String> map = new HashMap<String, String>();

		// 为map添加一条数据,记录一下页面传过来loginName
		map.put("name", this.loginName);
		map.put("password",this.password);

		// 将要返回的map对象进行json处理
		JSONObject jo = JSONObject.fromObject(map);

		// 调用json对象的toString方法转换为字符串然后赋值给result
		this.result = jo.toString();

		// 可以测试一下result
		System.out.println(this.result);

		return SUCCESS;

	}

}
?

?