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>