J'ai un utilisateur ajouter un formulaire userAdd.jsp. Lorsque je saisis des données et que je les soumets, je veux vérifier si le champ de nom d'utilisateur entré est unique par rapport à la base de données. Après avoir vérifié et confirmé seulement j'insère les données dans la base de données. J'ai fait jusqu'à ce moment au printemps mvc avec succès.
Maintenant, je veux donner des alertes contextuelles ou des boîtes de dialogue pour les deux instances dans Spring MVC. - le nom d'utilisateur est déjà dans la base de données - utilisateur est ajouté avec succès à la base de donnéesAlertes ou boîtes de message pop-up dans Spring MVC
Voici les moi jsp, méthode du contrôleur et la méthode de dépôt
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>
Méthode de contrôleur
//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"; }
méthodes du référentiel pour insérer des données d'utilisateur à la base de données et vérifier le nom d'utilisateur
/*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; }
requêtes SQL fonctionne très bien et je besoin d'un moyen d'obtenir des alertes popup au printemps mvc. Merci d'avance :)
Merci pour la réponse .... Mais ici une redirection vers une autre page se produit ... droite ... Je préférerais vraiment rester dans la même page et informer l'ajout ou le nom d'utilisateur de succès existe. Ici – difna
pour "nom d'utilisateur existe" l'utilisateur obtient déjà le même jsp! Pour tout le reste: cela dépend de ce que vous entendez par "rester dans la même page": même URL ou même jsp? --- bien sûr, vous pouvez utiliser des drapeaux et rendre le même jsp même pour "succès" et "strangeFailure" – Ralph
Merci pour la guidence .. – difna