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>