J'ai un ajax code> sur un jsp code> page qui appelle un contrôleur de ressort via URL / chèque code>. @RequestMapping("/check")
public String check(@RequestParam Integer id, HttpServletRequest request,
HttpServletResponse response, Model model) {
boolean a = getSomeResult();
if (a == true) {
model.addAttribute("alreadySaved", true);
return view;
} else
model.addAttribute("alreadySaved", false);
return view;
}
4 Réponses :
Vous devez ajouter l'annotation de @Responsebodod pour les appels Spring Ajax Exemple
@RequestMapping("/check")
@ResponseBody
public String check(@RequestParam Integer id, HttpServletRequest request, HttpServletResponse response, Model model) {
boolean a = getSomeResult();
if (a == true) {
model.addAttribute("alreadySaved", true);
return view;
} else {
model.addAttribute("alreadySaved", false);
return view;
}
}
D'accord. Comment puis-je obtenir cette réponse sur le côté de la vue?
Cela signifie que la vue est vide.Veuillez renvoyer l'objet modèle comme réponse.
Non, la vue n'est pas vide. La vue est injectée au printemps du servlet SpringMVC. C'est une chaîne qui résout pour charger un JSP.
J'ai eu une idée fausse. Je l'ai eu maintenant. Merci :)
Pièce du contrôleur
Vous devez ajouter l'annotation de la carte @Response pour les appels de ressort Ajax exemple Exemple P>
Partie de la vue p>
$.ajax({
type : "GET",
url : "${pageContext.request.contextPath}/check",
data : {
"id" : ${articleCount}
},
success: function(data){
$('#input_field').val(data);
}
});
Lorsque vous essayez de renvoyer les valeurs de la demande AJAX, vous devez utiliser le car il rendra à nouveau le JSP la réponse P> @Responsebody code> annotation. Comme votre méthode return Type est code> String CODE> Assurez-vous de retourner la valeur de la chaîne et non de votre vue sur le JSP. success: function(data){
alert(data);
}
Mais je dois retourner la vue de cette méthode car sans cela, le printemps ne sera pas en mesure de charger le JSP.
@najus pas le concept d'Ajax est de rafraîchir la partie de la page afin qu'il suffit de renvoyer la valeur de retour seule. Comme vous chargez la même page
Utilisez Spring liera la valeur de retour au corps de réponse HTTP sortant lorsque vous ajoutez @Responsebody code> @Responsebody code> Annotation. P> @ResponseBody
public String check(@RequestParam Integer id, HttpServletRequest request, HttpServletResponse response, Model model) {
boolean a = getSomeResult();
if (a == true) {
return "already saved";
}
return "error exist";
}