Comment afficher un message d'erreur sur la même page dans spring MVC
Je fais appel à un contrôleur spring mvc avec des données de formulaire.
Avant de l'enregistrer, je vérifie si l'id est une certaine gamme. Si l'id n'est pas dans la gamme, j'ai besoin d'afficher un message sur la même page en disant The id selected is out of Range, please select another id within range
.
J'ai trouvé des exemples sur internet où je peux rediriger à l'échec jsp dans le cas où quelque chose va mal. Mais comment faire dans mon cas?
@RequestMapping(value = "/sendMessage")
public String sendMessage(@ModelAttribute("message") Message message,
final HttpServletRequest request) {
boolean check = userLoginService.checkForRange(message.getUserLogin());
if(!check){
return ""; //What Should I do here??????
}
}
Vous devez vous connecter pour publier un commentaire.
Une approche simple serait d'ajouter votre message d'erreur comme un attribut du modèle.
Ensuite votre page jsp peut afficher le message "erreur" attribut si elle existe.
Modifier
Voici une ébauche, non testé mise en œuvre de la validation sur l'ajax. JQuery supposé.
Ajouter une demande de cartographie pour l'ajax pour toucher:
Intercepter la soumission de formulaire côté client et valider:
Vous pouvez également utiliser les messages d'erreur de soutien. De cette façon, vous pouvez utiliser le spring-mvc erreur de balises pour afficher l'erreur dans un contexte mondial ou même au niveau du terrain. Par exemple, si vous faites semblant de lier l'erreur pour le champ, vous pouvez utiliser:
Au niveau de la page, vous pouvez faire:
Si vous voulez juste pour montrer une erreur globale, omettre le nom du paramètre à bindingResult.rejectValue et sur la forme:des erreurs d'étiquette.
Remarque: vous n'avez pas besoin de s'inquiéter à propos de la récupération des paramètres manuellement. Dans des conditions normales, spring-mvc va gérer pour vous.
Espère que cela aide.