Ajax异步校验

用的框架:struts2、Spring、Hibernate
jsp界面(部分):

<script>
    function checkUsername(){
        //获得文本框的值
        var username = document.getElementById("username").value;
        //传统Ajax校验
        //1.创建异步交互对象
        var xhr = createXmlHttp();
        //2.设置监听
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){
                if(xhr.status == 200){
                    document.getElementById("span1").innerHTML = xhr.responseText;
                }
            }
        }
        //3.打开链接
        xhr.open("GET","${pageContext.request.contextPath}/user_findByUsername.action?time="
        +new Date().getTime()+"&&username="+username,true);
        //4.发送
        xhr.send(null);
    }
    function createXmlHttp(){
        var xmlHttp;
        try{
            xmlHttp = new XMLHttpRequest();
        }
        catch(e){
            try{
                xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
            }
            catch(e){
                try{
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){}
            }
        }
        return xmlHttp;
    }


<body>
<input type="text" id="username" name="username" onblur="checkUsername()">
</body>

Action中代码:

/**
     * ajax进行异步校验用户名的执行方法
     * @throws IOException 
     */
    public String findByUsername() throws IOException{
        //调用service查询
        User existUser = userService.findByUsername(user.getUsername());
        //获得response对象,向页面输出
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/html;charset=UTF-8");
        //判断
        if(existUser != null){
            //用户名以存在
            response.getWriter().println("<font color='red'>用户名已存在</font>");
        }else{
            //用户名可以使用
            response.getWriter().println("<font color='green'>用户名可以使用</font>");
        }
        return NONE;
    }

service层调dao层,dao层查询数据库:

//根据名字查询是否有该用户
    public User findByUsername(String username){
        String hql = "from User where username=?";
        List<User> list = this.getHibernateTemplate().find(hql,username);
        if(list !=null && list.size()>0){
            return list.get(0);
        }
        return null;
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值