关闭

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

标签: ajaxstruts2.0
206人阅读 评论(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

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7102次
    • 积分:157
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类