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

原创 2016年08月28日 14:29:13

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JSP+Serverlet+javaScript+ajax实现实时检测用户名是否被占用

网上搜了些实时监测用户名的脚本例子,没效果,结合别人的例子写了下面这个,实现在用户名输入框失去焦点时,检测用户名是否可用,并修改当前页面的样式。         ............  ...

ajax+struts2无刷新判断用户名密码是否相匹配

HTML图 ajax+struts2+hibernate4+spring4无刷新判断用户名密码是否相匹配 主要的思路是在userAction中添加一个判断用户名和密码是否相匹配的方法,通过返回值进...

jquery ajax无刷新请求Struts2验证用户名密码数据库是否存在

通过ajax请求验证后台数据是否存在. 首先导入struts2的核心包。 后台Action代码 import com.opensymphony.xwork2.ActionSuppor...

Struts2+AJax判断用户名是否存在

Struts2+AJax判断用户名是否存在,写的已经很详细了哦,如果还看不懂的话,可以留言,大家共同学习 JSP: function CheckUserId(userId){ var re...

使用struts2+Ajax+jquery验证用户名是否已被注册

推荐阅读:JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册 在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码...

struts2中使用ajax验证邮箱(用户名)是否被注册

action类: package com.grace.myblog.view.action; import java.io.PrintWriter; import javax.servlet.ht...

Jquery、 ajax和struts2+Hibernate查询数据库验证用户名是否存在,表单禁止提交等!

最近学习了ajax的异步调用和刷新技术,就实践了一把。也借鉴了别人的方法,再加入自己的思路,就有了下面的东东```有任何疑问,就留言吧```` 首先是前台的jsp页面 关于jquery的post方...

学习struts2建bbs总结五:使用jquery+ajax验证用户名是否存在以及struts效验信息不断重复的问题

用 户 名   * 密    码   *重复密码   *性别   女 男 请选择头像 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)