Struts中用Ajax实时验证

1:jsp:

var xmlHttp;
    function verify() {
        var username = document.getElementById("username").value;
        if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
            if (xmlHttp.overrideMimeType) {
                xmlHttp.overrideMimeType("text/xml");
            }
        } else if (window.ActiveXObject) {//IE
            var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
            for (var i = 0; i < activexName.length; i++) {
                try {
                    xmlHttp = new ActiveXObject(activexName[i]);
                    break;
                } catch (e) {
                }
            }
        }
        if (!xmlHttp) {
            alert("XMLHttpRequest对象创建失败");
            return;
        } else {

        }
        xmlHttp.onreadystatechange = callback;
        xmlHttp.open("GET", "usernameCheckAction.action?username=" + username, true);
        xmlHttp.send(null);


    }


    function callback() {//处理答应数据
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {
                var responseText = xmlHttp.responseText;
                var divNode = document.getElementById("tip");
                divNode.innerHTML = responseText;
            } else {
                alert("出错了!")
            }
        }
    }

    function isEqualUser() {
        var responseText = xmlHttp.responseText;
        if (responseText =="<font color='red'>该用户名已被注册</font>") {
            alert("对不起,您的用户名已经注册过,请重新输入!");
            return false;
        }
        return true;
    }

2:Struts:

<action name="usernameCheckAction" class="usernameCheckAction">
        </action>

3:action

package com.zyy.action;

import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.zyy.model.User;
import com.zyy.service.UserManager;

@Component("usernameCheckAction")
@Scope("prototype")
public class UsernameCheckAction {
    /**
     * 
     */
    private UserManager userManager;

    public UserManager getUserManager() {
        return userManager;
    }

    @Resource
    public void setUserManager(UserManager userManager) {
        this.userManager = userManager;
    }

    private static final long serialVersionUID = 1L;

    public String execute() throws Exception{
        try{
            String responseText="";
            HttpServletRequest request=ServletActionContext.getRequest();
            String username=request.getParameter("username"); 

            System.out.println("---"+username);
            User u = new User();
            u.setUsername(username);
            if(userManager.exists(u)==true) {
                responseText="<font color='red'>该用户名已被注册</font>";
            }
            else{
                responseText="<font color='green'>该用户名可用</font>";
            }

            HttpServletResponse response=ServletActionContext.getResponse();    
            response.setContentType("text/html;charset=utf-8"); 
            PrintWriter out=response.getWriter();  
            out.print(responseText);  
            out.flush();  
            out.close();  
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }
}

4:显示

<span id="tip"></span>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值