`
xiaoliang330
  • 浏览: 112727 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ajax小试牛刀第2回

    博客分类:
  • Ajax
阅读更多
这次遇到问题,问题阐述如下:

  想通过ajax的异步传输,在用户注册页面,当用户输入用户名后显示该用户的可用与否,此处用到struts2,ajax的request对象把url转向action,通过action与数据库交互,判断用户名是否可用。
  遇到了action中如何返回需要的提示信息的问题,我是这样解决的,通过建立相应的jsp页面来显示提示内容,代码贴上,口述看者模糊。


jsp页面
  
<script language="javascript">

    var http_request = false;
    function t1(){
    	var userName = document.all("um.userName").value;
    	//alert(userName);
    	
    	//ajax开始-----------------------------
    	//1:创建对象
    	myRequest = new ActiveXObject("Microsoft.XMLHTTP");
    	//2:给该对象注册事件,当对象的状态改变时,调用后面的回调方法
    	//alert(myRequest.readyState);
    	myRequest.onreadystatechange = t2;
    	//3:设置请求方式、目标url以及是否异步交互,其中true表示异步
    	myRequest.open("GET","/s2/user/myAction?uwm.submitFlag=toAdd&um.userName="+userName,true);
    	//4:
        myRequest.send(null);
    }
    
    function t2(){
    	//alert(myRequest.readyState);
    	if(myRequest.readyState==4){
    		//如果交互完成
    		//alert(myRequest.status);
    		if(myRequest.status==200){
    			//并且交互成功
    			//取得服务端返回的信息
    			var retVal = myRequest.responseText;
    			//ajax结束-----------------------------	
    			//alert(retVal);
    			//后续处理
    			document.all("myspan").innerHTML=retVal;
    		}
    	}
    }

</script>

<body>
	<form name="add" action="/s2/user/myAction.action?uwm.submitFlag=add" method="post">
		<table align="center">
			<tr>
				<td colspan="2"><font size="+1" color="#ff00ss">添加用户</font></td>
			</tr>
			
			<tr>
				<td>用户姓名:</td>
				<td><input type="text" name="um.userName" onblur="t1()"/><font color="red">*<span id="myspan"></span></font></td>
			</tr>
			



action中的代码如下:
public String execute() throws Exception {
		
		String submitFlag = uwm.getSubmitFlag();
		//System.out.println(submitFlag);
		if(submitFlag!=null){
                       if("toAdd".equals(submitFlag)){
				return toAdd();
			}
		}




	private String toAdd() throws IOException {
		
		String userName = um.getUserName();
		qum.setUserName(userName);
		Collection col = UserServiceFactory.getUserService().getUserByCondition(qum);
		if(col.size()==0){
			return "yes";
		}else{
			return "no";
		}
		
	}






struts.xml
 <result name="yes">/pages/yes.jsp</result>
 <result name="no">/pages/no.jsp</result>

相应两个跳转的页面的内容:
恭喜,此用户名可用!//yes.jsp
sorry,此用户名已存在,请重新输入!//no.jsp



此处用jsp页面装载提示信息个人觉得不是解决的好办法,学的不够深入,在Servlet中,是不存在这种情况的,直接用PrintWriter 输出相应的提示信息,通过jsp页面的 request.responseText即可获取到相应的提示。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics