struts2基于ajax的验证用户名是否被注册示例

来源:互联网 发布:数控车编程手机版apk 编辑:程序博客网 时间:2024/04/25 05:34

1、ajax.js代码如下:

var xhr;//定义ajax对象

//创建xhr
function createXHR(){
    //ie
  if (window.ActiveXObject) { //对应ie浏览器
        var msxmls=['Msxml2.XMLHTTP','Microsoft.XMLHTTP'];
       for (i = 0; i < msxmls.length; i++) {
           try {
                xhr=new ActiveXObject(msxmls[i]);
               return ;
            } catch (exception) {
                continue;
            }            
        }
    }else if (window.XMLHttpRequest) { //火狐浏览器等
        xhr=new XMLHttpRequest();
    }else{
        alert("您的浏览器版本过低请求不能够创建");
    }
}

function checkName(){
    var span=document.getElementById_x_x("msg");//用来显示服务器响应信息
    span.innerHTML="验证用户...";
    var name=document.getElementById_x_x("js-mobile_ipt").value;
    // alert(name);
    createXHR();
    //连续调用checkNameCallback函数
    xhr.onreadystatechange=checkNameCallback;

   //发送ajax请求
    xhr.open("get","isUserNameValid.action?userName="+name,true);
    xhr.send(null);
}
var c=0;
function checkNameCallback(){
   // alert(c++);
    //当readyState==4及读取到post提交的正文才显示用户名是否被注册
    if (xhr.readyState==4) {
        if (xhr.status==200) {

           ///获取服务器相应文本
            var ret=xhr.responseText;
            var span=document.getElementById_x_x("msg");
            if (ret=="error") {
                span.innerHTML="用户名已存在!";
            }else if(ret=="ok"){
                span.innerHTML="用户名可用!";
            }
        }
    }
}

2、action类:

@Override
 public String execute() throws Exception {
  
   ServletActionContext.getResponse().setContentType("text/javascript;charset=UTF-8");
 //验证用户名是否被注册
  if (userService.isUserNameValid(userName)) {
 //请求响应数据
    ServletActionContext.getResponse().getWriter().write("ok");
  }
  else
  {
    ServletActionContext.getResponse().getWriter().write("error");
  }

  return null;
 }
3、struts.xml配置:

 
 <!-- 验证用户名是否可用Action -->
       <action name="isUserNameValid" class="com.nyist.cloud.action.ValidateUserNameAction" >
       </action>
4、jsp页面片段:
<input type="text" 
name="user.unickName" id="js-mobile_ipt" class="text" maxlength="11" onblur="checkName();"/>
<font color="red">*</font>
<span 
id="msg">
<LABEL style="text-align: center;" ><s:fielderror escape="true" fieldName="user.nickName" theme="simple"  cssStyle="color:red;font-size: 14px;font-style: inherit;"></s:fielderror>
</LABEL>
</span>

原创粉丝点击