基于ssm的AJAX传值问题(注册用户名唯一)

5月9号花了整整一天好好学习了一下有关AJAX传值的问题:
写了一个关于注册时判断用户名是否唯一的后台。
啥也不说了,直接上代码。
代码主要分了三部分:1.JSP;2.controller;3.service,其实还有mapper文件用来存放数据库。
1.JSP部分:

<script src="assets/js/jquery-1.10.2.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                 $("#registerPwd").click(function(){
                    $.ajax({
                        url:"http://localhost:8080/bask10/registerUserName.do",
                        type: "POST",
                        datatype:"json",
                        data:{"registerName":$("#registerName").val()},
                        success:function(data){
                            //alert(typeof data);测试代码
                            var str = data.result;
                            if(str == "success"){
                                alert('该用户名可用!')
                            }else{
                                alert('该用户名不可用!')
                            } 
                        }
                        
                    }) 
                    
                });
            });
        </script>

 

2.controller部分:
//用来判断用户名是否唯一
    @RequestMapping("/registerUserName")
    @ResponseBody
    public Map<String,Object> registerUserName(String registerName,HttpServletRequest request){
        //校验registerUserName方法传入的参数registerName是否为空
        if(StringUtils.isEmpty(registerName)){
            LOGGER.error("registerUserName方法的参数registerName是空的");
            request.setAttribute("error", "用户名不能为空!");
            System.out.println("error");
            //return LOGINNEW;//如果出现空指针异常,先让其跳回loginNew.jsp页面。
        }
        Map<String,Object> resultMap = new HashMap<String, Object>();  
        boolean tOf = registerService.registerNameOnly(registerName);
        if(tOf == true){
            resultMap.put("result", "success");
            return resultMap;
        }else{
            resultMap.put("result", "notsuccess");
            return resultMap;
        }
    }

 

3.service部分:
//添加方法registerNameOnly传入表单中的用户名,用来判断数据库中是否已经存在该用户名
    public boolean registerNameOnly(String userName){
        User user = new User();
        user.setUserName(userName);
        user = userMapper.loginFindNamePwd(user);
        if(user == null){
            return true;
        }else{
            return false;
        }
    }

 

4.mapper文件里的sql:
<select id="loginFindNamePwd" resultMap="BaseResultMap" parameterType="com.basketball.entity.User" >
    select <include refid="Base_Column_List" />from user where user_name=#{userName};
  </select>

转载于:https://www.cnblogs.com/rendachang/p/6859777.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架中,实现注册用户名不能重复可以通过以下步骤: 1. 在数据库中创建一个用户表,包含用户名和密码等字段。 2. 在Java中创建一个User实体类,对应用户表中的字段。 3. 在DAO层中创建查询用户名是否已存在的方法,如下所示: ```java public User selectByUsername(String username); ``` 4. 在Service层中调用DAO层的方法,判断用户名是否已存在,如下所示: ```java public boolean isUsernameExist(String username) { User user = userDAO.selectByUsername(username); if (user == null) { return false; // 用户名不存在 } else { return true; // 用户名已存在 } } ``` 5. 在Controller层中接收用户提交的注册信息,并调用Service层的isUsernameExist()方法判断用户名是否已存在,如下所示: ```java @RequestMapping(value = "/register", method = RequestMethod.POST) public String register(@RequestParam("username") String username, @RequestParam("password") String password, Model model) { if (userService.isUsernameExist(username)) { model.addAttribute("error", "用户名已存在,请重新输入!"); return "register"; } else { User user = new User(); user.setUsername(username); user.setPassword(password); userService.addUser(user); return "redirect:/login"; } } ``` 在这个例子中,如果用户名已存在,则将错误信息添加到Model中并返回注册页面;如果用户名不存在,则将用户信息添加到数据库中并重定向到登录页面。 注意,这个例子中只是简单地判断用户名是否已存在,实际应用中还需要考虑多线程并发访问、数据安全等问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值