• 基于jQuery实现的Ajax 验证用户名唯一性


    JSP部分代码:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <%@include file="/common/header.jsp"%>
        <title>用户管理</title>
        <script type="text/javascript">
            function doVerify(){
                //获取界面的账号
                var account =  $("#account").val();
                //获取账号后的提示信息文本
                var accountText = document.getElementById("accountText");
                //如果账号输入不为空,执行该方法
                if(account !=""){
                    $.ajax({
                        url:"${basePath}nsfw/userAction_verifyAccout.action",//后台查询验证的方法
                        data:{"user.account": account},//携带的参数
                        type: "post",
                        success: function(msg){
                            //根据后台返回前台的msg给提示信息加HTML
                            if("true" !=msg){
                                // 账号已经存在
                                accountText.innerHTML = "<font color='red'>抱歉,"+account+"已被注册,请更换!</font>"
                            }
                            else{
                                
                                // 账号不存在
                                accountText.innerHTML = "<font color='green'>恭喜,"+account+"可以注册!</font>"
                            }
                        }
                    });
                }
            }
        </script>
    </head>
    <body class="rightBody">
    <tr>
                <td class="tdBg" width="200px">帐号:</td>
                <td><s:textfield name="user.account" id="account" onchange="doVerify()"/>
                    <span id="accountText"></span>
                </td>
            </tr>
    </body>

    后台代码:

     action层代码:

        // 校验用户名唯一性
        public void verifyAccout() throws IOException {
            if (user !=null && StringUtils.isNotBlank(user.getAccount())) {
                
                List<User> list = userService.findObjectByAccountAndId(user.getId(), user.getAccount());
                String resultString = "true";
                if (list!=null && list.size()>0) {
                    //说明账号存在
                    resultString = "false";
                }
                //输出到界面
                HttpServletResponse response = ServletActionContext.getResponse();
                response.setContentType("text/html");
                ServletOutputStream outputStream = response.getOutputStream();
                outputStream.write(resultString.getBytes());
                outputStream.close();
            }
            
        }

    Service层代码:

    public List<User> findObjectByAccountAndId(String id, String account) {
            return userDAO.findObjectByAccountAndId(id, account);
        }

    DAO层代码:

    public class UserDAOImpl extends BaseDaoImpl<User> implements UserDAO {
        /**
         * 校验账号唯一性
         */
        @Override
        public List<User> findObjectByAccountAndId(String id, String account) {
            StringBuilder hqlStr = new StringBuilder("FROM User t WHERE t.account = ?");
            if (StringUtils.isNotBlank(id)) {
                hqlStr.append(" AND t.id=?");
            }
            Query query = getSession().createQuery(hqlStr.toString());
            query.setParameter(0, account);
            if (StringUtils.isNotBlank(id)) {
                query.setParameter(1, id);
            }
            
            return query.list();
        }

    效果图:

  • 相关阅读:
    Eclipse:构造函数不提示才发现
    Java:终于找到了在alloy中的JFileChooser中的弹出式菜单不显示文字的解决办法
    java:给图片上加水印
    Asp:函数是用传值还是传址
    数据库移植注意事项
    51nod 1009 数字1的数量
    51nod1003 阶乘后面0的数量
    51nod 1002 数塔取数问题
    2017 Multi-University Training Contest
    HDU 3251 Being a Hero 最小割
  • 原文地址:https://www.cnblogs.com/klslb/p/7089051.html
Copyright © 2020-2023  润新知