我有一个用户添加表单userAdd.jsp。当我输入数据并提交时,我想检查输入的用户名字段是否与数据库相比是唯一的。在检查并确认后,我只能将数据插入数据库。我已经在Spring mvc中成功完成了这一点。
现在我想给弹出警报或对话框在Spring MVC中的两个实例。 - 用户名是已经在数据库 - 用户成功添加到数据库Spring MVC中的警报或弹出消息框
以下是我的jsp视图,控制器,方法和库法
userAdd.jsp snipplet
<div class="col-xs-4"> <form:input path="username" class="form-control" name="username_admin" id="username_admin" placeholder="User Name" type="text" required="required"/> </div> <div class="col-xs-4"> <form:input path="password" class="form-control" id="password1" placeholder="Password" type="text" required="required" onchange="validatePassword(password1)"/> </div> <div class="col-xs-4"> <form:input path="password" class="form-control" id="cpassword" placeholder="Password Confirm" type="text" required="required" onchange="passwordsEqual(cpassword,password1)"/> </div>
控制器方法
//to show the userAdd.jsp page @RequestMapping(value="/add",method=RequestMethod.GET) public ModelAndView showCustomer(){ return new ModelAndView("userAdd", "command",new User()); } //to handle the form data submission and check username @RequestMapping(value="/addCustomer",method = RequestMethod.POST) public String saveOrUpdate(@ModelAttribute("newUser") User newUser, final RedirectAttributes redirectAttributes) throws SQLIntegrityConstraintViolationException { boolean usernameUnique=staffRepository.checkUsernameUnique(newUser); if(usernameUnique) { int i = staffRepository.add(newUser); if (i == 0) //alert saying server error in inserting data to mysql else { //alert or dialog box confirming successful user add } }else{ //alert saying username exists in database } return "redirect:list"; }
点
库的方法将用户数据插入到数据库,并检查用户名
/*add a new staff member*/ @Override public int add(User user) throws DuplicateKeyException { int row = 0; String un = user.getUsername(); String pw = user.getPassword(); String des = user.getDesignation(); if (un != "" && pw != "") { { String sql = "INSERT INTO staff " + "(title,username,password,first_name,last_name,email,mobile,address_line1,address_line2,address_line3," + "designation,department,branch,register_date,status) VALUES (?,?,sha1(?),?,?,?,?,?,?,?,?,?,?,CURRENT_DATE,1)"; row = jdbcTemplate.update(sql, new Object[]{user.getTitle(), user.getUsername(), user.getPassword(), user.getFirstName(), user.getLastName(), user.getEmail(), user.getMobile(), user.getAddressL1(), user.getAddressL2(), user.getAddressL3(), user.getDesignation(), user.getDepartment(), user.getBranch()}); updateGroupStaff(des, un); log.info(row + " staff inserted"); log.info(un); /*}else log.info("username already available");*/ } else log.error("values cannot be empty"); return row; } //check username availability @Override public boolean checkUsernameUnique(User user) { boolean result = true; String sql = "SELECT count(*) FROM staff WHERE username = ? "; int count = jdbcTemplate.queryForObject( sql, new Object[]{user.getUsername()}, Integer.class); if (count > 0) { result = false; log.info("username already available"); } log.info(result); return result; }
SQL查询工作非常细,我需要一种方式来获得弹出的提示Spring MVC中。 感谢提前:)
感谢您的回答....但在这里重定向到另一个页面时...正确的...我真的宁愿留在同一个页面,并通知成功的用户添加或用户名存在。这里 – difna
为“user-name exists”,用户已经获得相同的jsp!对于其他任何事情:这取决于您“留在同一页面”中的意思:相同的网址或相同的jsp? ---当然你也可以使用标志并且渲染相同的jsp,即使是“成功”和“奇怪失败” – Ralph
感谢您的指导.. – difna