日期:2014-05-19  浏览次数:20666 次

验证用户名是否存在。Ajax+Action怎么写了?
<script type="text/javascript">

  var xmlHttp;
  var result = false;
  function checkuid(){
 
  var username = document.all.username.value;
 
  if(username.length<3){
  document.all.usernameMsg.innerHTML="<font color='red'>用户名太短,请重新输入!</font>";
 
  return false;
  }else{
   
  document.all.usernameMsg.innerHTML="<font color='red'>用户名检测中...</font>";
  if(window.ActiveXObject){
   
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 
  }else if(window.XMLHttpRequest){
   
  xmlHttp = new XMLHttpRequest();
   
  }
 
  var uri = "user!CheckUser.action?username="+username;

 
  xmlHttp.open("post",uri,true);
   
  xmlHttp.onreadystatechange = function(){
  if(xmlHttp.readyState==4){
  if(xmlHttp.status==200){
  var flag = xmlHttp.responseText;
  if(flag=="true"){
  document.all.usernameMsg.innerHTML="<font color='red'>该用户名已被使用,请您重新选择用户名!</font>";
  result = false;
 
  }else{
  document.all.usernameMsg.innerHTML="<font color='red'>恭喜您,该用户名可用!</font>";
  result = true ;
  }
  }
  }
 
  }
 
  xmlHttp.send(null);
  }
 
 
  }
 
 
 </script>

public void CheckUser() {
PrintWriter pw = null;
System.out.println("username=" + username);
list = userService.query("from User where username='" + username + "'");
System.out.println(list);
System.out.println("aadasd");
if (list != null) {
pw.write("true");
} else {
pw.write("false");
}
pw.flush();
pw.close();
}


这段代码肯定有错。第二个是Struts2的Action,请问这些要怎么写了?求补充

------解决方案--------------------
找找jquery吧,自己写太费劲了
------解决方案--------------------
基本对的吧

pw是null怎么输出数据给前台?
------解决方案--------------------
建议LZ用用jquery的Ajax把,如果你是初学jsp的话,用这种异步请求可以理解。
不过你检查用户名的action,你的printWrite为null啊,用request对象赋值下吧!
------解决方案--------------------

PrintWriter pw = null;


改为

PrintWriter pw = ServletActionContext.getResponse.getWriter();




------解决方案--------------------
引用:
引用:Java code?1PrintWriter pw = null;

改为
Java code?1PrintWriter pw = ServletActionContext.getResponse.getWriter();

请问为什么我赋值了现在变成了一直false了。。
刚没赋值一只手true


可以打印下list看看list的值。一般情况,是你那个判断list是否为空的操作出问题了。