AJAX的详细描述就不做介绍了,大家基本都懂这个。
下面我们会通过两个具体的案例,来做具体的实现:
<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>
<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>
<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://blog.csdn.net/u010800530/article/details/38943517