码迷,mamicode.com
首页 > Web开发 > 详细

Struts2用AJAX实现JSON插件的使用

时间:2014-08-30 15:11:59      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:ajax   json   异步   struts   

AJAX的详细描述就不做介绍了,大家基本都懂这个。

下面我们会通过两个具体的案例,来做具体的实现:

案例一:

案例描述:输入用户名,把用户名通过AJAX异步传输的方式发送至后台,判断此用户名是否存在。

第一步,我们需要导入这三个jar包:commons-lang3-3.1.jar、struts2-json-plugin-2.1.8.1.jar、xwork-core-2.1.6.jar,然后还有Struts2的几个基本jar包
第二步,还要导入jQuery的配置文件:jquery-1.8.0.min.js(PS:这里需要注意的一点是:xwork-core-2.1.6的jar包必须是这个2.1.6左右版本的,不然会出现一个异常)
这是这个案例的目录视图:
bubuko.com,布布扣因为MyEclipse的版本原因,会在jquery的配置文件前边打了个叉,这个不用管。

第三步,我们就要开始具体的编码了:
首先,我们需要建立一个Demo1.jsp文件,用来发送注册数据(存放位置请看上图):
<span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>注册</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript" src="${pageContext.request.contextPath }/jquery/jquery-1.8.0.min.js"></script>
	<script type="text/javascript">
		$(function(){  /* 这表示在页面加载的时候自动调用里边的方法 */
			$("#username").blur(function(){ /* 这里表示在id=username的文本框失去焦点时候调用function()方法 */
				$.post(
					"${pageContext.request.contextPath}/checkUserName.action", //这是URL
					{"username": $("#username").val()},  //这是数据
					function(data){   //data是从后台返回回来的数据的集合
						if(data.isExist){
							$("#result").html("<font color='red'>用户名已经存在</font>");	
						}else{
							$("#result").html("<font color='green'>用户名不存在</font>")
						}
					}
				);	//这是AJAX传输数据的方法$.post()
			})
		})
	</script>
	
  </head>
  
  <body>
    <h1>判断用户是否存在</h1>
    <form>
    	用户名:<input type="text" name="username" id="username" /><span id="result"></span><br>
    	密码:<input type="password" name="password" id="password" />
    	<input type="submit" value="注册" />
    </form>
  </body>
</html>
</span>

接下来,我们需要配置struts.xml文件:
<span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>  
	<package name="myjson" extends="json-default" >   <!-- 这里必须要继承json-default类 -->
		<action name="checkUserName" class="cn.action.CheckUserNameAction" method="execute">
			<result type="json"></result> <!-- 因为这里不是用result返回具体的视图,而是要返回json数据,所以这里的type是json -->
		</action>
	</package>
	
	
</struts>
 </span>

最后,我们需要的就是要写一个Action类了:CheckUserNameAction
<span style="font-size:14px;">package cn.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class CheckUserNameAction extends ActionSupport{
	private List<String> existName = new ArrayList<String>();
	
	public CheckUserNameAction(){
		//因为仅仅演示AJAX,所以这里假设existName是数据库用户的集合,然后添加了两个数据
		existName.add("zhangsan");
		existName.add("lisi");
	}

	@Override
	public String execute() throws Exception {
		if(existName.contains(username)){
			//这个名字不能被注册,因为数据库有这个名字
			isExist = true;
		}else{
			//这个名字可以被注册,因为数据库没有这个名字
			isExist = false;
		}
		return SUCCESS;
	}
	
	private String username;  //这里用来接收前台传来的数据
	public void setUsername(String username) {
		this.username = username;
	}
	
	private boolean isExist; 
	public boolean getIsExist(){ //这里用来返回用户是否可以注册
		return isExist;
	}
	
	
}
</span>

上边已经做完了,这时候我们就需要验证了:
输入:http://localhost:8080/book/json/Demo1.jsp
然后,在用户名输入:zhangsan,会出现下图的情况:
bubuko.com,布布扣
案例一介绍结束。



Struts2用AJAX实现JSON插件的使用

标签:ajax   json   异步   struts   

原文地址:http://blog.csdn.net/u010800530/article/details/38943517

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!