ajax+struts2“实时”检测用户名是否被占用

2 篇文章 0 订阅
2 篇文章 0 订阅

ajax+struts2检测用户名是否被占用

借用ajax,可以实现用户注册时,实时检测用户名是否被占用,更加友好。总不能在用户提交注册信息之后,再告诉他/她用户名已被占用吧,我就碰到过这样的网站。自己照着网上的教程,也搜索过一些知识点,添加了一段ajax+struts2的检测程序。

首先是注册表单页面

js文件

当username对应的文本输入框失去焦点(onblur)时,调用下面的checkUsernameExist()函数
这里写图片描述

表单页面

这里写图片描述

对应的action处理类

package com.chris.action;


import java.io.PrintWriter;
import javax.servlet.ServletResponse;
import org.apache.struts2.ServletActionContext;
import com.chris.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class UsernameCheck extends ActionSupport  {
    private String username;
    //业务逻辑组件,使用依赖注入的方式创建实例
    private UserService userService;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public UserService getUserService() {
        return userService;
    }
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    public String execute() throws Exception {
        //使用ServletActionContext工具类,得到一个response对象
        ServletResponse response = ServletActionContext.getResponse();
        PrintWriter writer = response.getWriter();
        //检测到已经存在,会返回true   
        if(userService.checkUsername(username)) {   
            //为了自己方便,添加的控制台打印语句
            System.out.println(username + " already exist");
            //write中的内容,会传递到客户端xhr对象的responseText中
            //“1”表示已经存在
            writer.write("1");
        } else {
            System.out.println(username + " does not exist");
            writer.write("0");
        }
        //因为重写execute()方法,必须返回一个String字符串。这里返回null,因为不需要返回页面
        return null;
    }   
}

假设已经写好了数据库、PO、DAO和业务逻辑之类的,那么,加一个检测用户名是否被占用的业务逻辑方法就可以了。

业务逻辑方法

    //检测用户名是否占用的业务逻辑方法
    //用户名已存在,则返回true
    public boolean checkUsername(String username) {
        if(userDAO.queryByID(username) != null) {
            return true;
        } else {
            return false;
        }
    }

依赖注入文件配置

在applicationContext.xml中,为UsernameCheck这个Action类注入业务逻辑组件userService。
这里写图片描述

action.xml文件配置

在action.xml中添加结果文件配置,
这里写图片描述

由于这里没有返回页面,故没有配置result。注意,这里的class应该配置成applicationContext.xml文件中配置的bean的id,因为是采用依赖注入的方式来实例化类,不再由struts2来根据实现类来实例化,而是通过id来获取一个Action实例。

如有疑问,欢迎指出,共同进步。

参考

http://blog.csdn.net/yichangzxc/article/details/51470068

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值