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

来源:互联网 发布:protocol buffer 数组 编辑:程序博客网 时间:2024/05/17 02:04

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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 dw模板不更新怎么办 闭水试验漏水怎么办 绘声绘影试用过了怎么办 探探被选成试用新版用户怎么办 淘宝被限制评论怎么办 信用钱包套路了怎么办 农业银行还贷迟了一天怎么办 淘宝限购一件怎么办 小米盒子电视打不开怎么办 手机淘宝总是卡怎么办 淘宝相机不能用怎么办 作业盒子没声音怎么办 作业盒子闪退怎么办 双面羊绒缩水了怎么办 作业盒子为静音怎么办 没有上进心的人怎么办 孩子不听老人话怎么办 淘宝分销没有视频怎么办 孕妇血糖稍高怎么办 苹果6s 卡怎么办 花呗额度用完怎么办 手机百度网站无法访问怎么办 手机应用删不了怎么办 华为p4屏幕切换怎么办 手机搜不到设置怎么办 华为手机设置成怎么办 手机截屏模糊怎么办 图片上传不清晰怎么办 手机截屏不清楚怎么办 恢复的照片模糊怎么办 手机照片虚了怎么办 美团充话费不到账怎么办 总是心烦气躁怎么办 心烦气躁失眠怎么办 淘金币满了怎么办 面包快过期了怎么办 油茶怎么办不会有疙瘩 孕妇太热了怎么办 食药监局抽检食品不合格怎么办 淘宝 商家不退款怎么办 支付宝成黑户怎么办