zoukankan      html  css  js  c++  java
  • struts2下的Ajax

    index.jsp

    	<script type="text/javascript" src="js/xhr.js"></script>
    	<script type="text/javascript">
    		function check_userName(){
    			
    			//1 获取Ajax请求对象	
    			var xhr = getXhr();
    			//alert(xhr)
    			//2 创建请求
    			//alert(userName);
    			xhr.open("POST","loginAction",true);
    			xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
    			//4 回调函数
    			xhr.onreadystatechange = 
    				function callBack(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						var text = xhr.responseText;
    						//alert(text);
    						//将接受到的json字符串转换成json对象
    						var data = eval("("+text+")");
    						//取出json对象里面的userNameSpan属性值赋值给id的userNameSpan的span标签
    						document.getElementById("userNameSpan").innerHTML = data.userNameSpan;
    					}
    				}
    			//模拟网络延迟效果			
    			document.getElementById("userNameSpan").innerHTML = "正在验证ing...";
    			//5 发送请求
    			var userName = document.getElementById("userName").value;
    			xhr.send("userName=" + userName);
    		}
    		//回调函数
    		
    		
    	</script>
    	
      </head>
      
      <body>
        userName:
        	<input id="userName" type="text" name="userName" onblur="check_userName()"/>
        	<span id="userNameSpan" style="color:red"></span>
       		<br/>
    	passWord:
    		<input id="passWord" type="password" name="passWord"/>
    		<br/>
      </body>
    

      xhr.js

    function getXhr(){
    	var xhr = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject();
    	return xhr;
    }
    

      LoginAction.java

    public String register(){
    		
    		//模拟网络延迟
    		try {
    			Thread.sleep(2000);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		
    		if("yangkang".equals(userName)){
    			userNameSpan = "该用户名已经被注册";
    		}else{
    			userNameSpan = "√";
    		}
    		
    		return SUCCESS;
    	}
    
    	
    	private String userName;
    	private String passWord;
    	private String userNameSpan;
    	public String getUserName() {
    		return userName;
    	}
    	public void setUserName(String userName) {
    		this.userName = userName;
    	}
    	public String getPassWord() {
    		return passWord;
    	}
    	public void setPassWord(String passWord) {
    		this.passWord = passWord;
    	}
    	public String getUserNameSpan() {
    		return userNameSpan;
    	}
    	public void setUserNameSpan(String userNameSpan) {
    		this.userNameSpan = userNameSpan;
    	}
    

      

    <struts>
    	<package name="json" extends="json-default" namespace="/">
    		<action name="loginAction" class="com.yangkang.action.LoginAction" method="register">
    			<result type="json"></result>
    		</action>
    	</package>	
    </struts>
    

      jar包:

    ezmorph-1.0.3.jar
    json-lib-2.1-jdk15.jar
    struts2-json-plugin-2.2.3.1.jar
    commons-logging-1.1.1.jar
    freemarker-2.3.16.jar
    ognl-3.0.1.jar
    xwork-core-2.2.3.1.jar
    struts2-core-2.2.3.1.jar
    commons-beanutils-1.7.0.jar
    commons-lang-2.5.jar
    commons-fileupload-1.2.2.jar
    javassist-3.11.0.GA.jar
    commons-io-2.0.1.jar

    源码地址:http://pan.baidu.com/s/1c0EqLEg

  • 相关阅读:
    实现Callable接口实现多线程
    匿名内部类方式实现
    实现Runnable接口方式
    后台线程
    继承Thread类
    线程中断详解
    第六章、Linux 的档案权限不目彔配置
    安装virtual box
    CISCO实验记录六:EIGRP路由协议
    zabbix监控项整理Items-key
  • 原文地址:https://www.cnblogs.com/toLife/p/4579622.html
Copyright © 2011-2022 走看看