comment faire pour renvoyer l'objet à partir du contrôleur de l'ajax dans spring mvc
J'ai du renvoyer la liste des employés de Contrôleur de l'ajax de jQuery. Comment dois-je faire pour elle?
//controller part
@RequestMapping("phcheck")
public ModelAndView pay(@RequestParam("empid") int empid, String fdate, String tdate) {
ModelAndView mav = new ModelAndView("phcheck");
List<Employee> emp=entityManager.createQuery("select e from Employee e where e.empId="+empid, Employee.class).getResultList();
mav.addObject("emp", emp); <----I need this list of employee in ajax
return mav;
}
Ajax en Vue
//Ajax part
$(document).ready(function () {
$("#empid").change(function () {
if ($("#fdate").val() != "" && $("#tdate").val() != "" && $("#empid").val() != "") {
jQuery.ajax({
url: "phcheck.htm?empid=" + $("#empid").val() + "&&fdate=" + $("#fdate").val() + "&&tdate=" + $("#tdate").val(),
success: function (data) {
alert(data + "success");
},
error: function (data) {
alert(data + "error");
}
});
} else {
alert("Please fill the from date and to date or select the employee id");
$("#empid .option").attr("selected", "selected")
}
});
});
Merci d'avance.
OriginalL'auteur Gorakh | 2014-04-24
Vous devez vous connecter pour publier un commentaire.
Au printemps, quand vous avez besoin de sérialisation d'un objet, de la sérialisation et de conversion de message. dans ce cas, vous avez besoin d'annoter votre contrôleur méthode de gestionnaire avec
@RequestBody
et@ResponseBody
.Où:
dans votre cas, vous avez besoin de type JSON, vous devez ajouter
@ResponseBody
à votre signature de la méthode ou juste au-dessus de la méthode, et produit et consomme, qui sont facultatives, comme:et en appel AJAX utilisation:
contentType: 'application/json'
attribut indique le type de données que vous envoyez. etdataType: json
attribut indique jquery quel type de contenu de la réponse recevra.dans votre cas
contentType: 'application/json'
n'est pas nécessaire, par défaut c'est à dire'application/x-www-form-urlencoded; charset=UTF-8'
est assez.et vous pouvez recevoir la liste des employés dans votre AJAX succès, pour itérer sur il faire comme:
Remarque: Jackson mappeur ou de tout autre mappeur devraient être disponibles sur le buildpath afin de travailler JSON sérialiser et désérialiser.
Voir Aussi:
OriginalL'auteur Abhishek Nayak
Dans Spring MVC, vous devez avoir enregistré MappingJackson2HttpMessageConverter comme le fait ici
OriginalL'auteur geoand
La ModelAndView implique que vous avez un plan pour rendre un avis, qui ne le sont pas. Juste de retour de l'objet, utilisez le @ResponseBody annotation:
Aussi, vous devriez être plus prudent sur la façon dont vous gérer les requêtes. Votre requête est précaire et permettrait d'injection sql. Par exemple, si quelqu'un appelle votre méthode avec empId = "'15' ou '1'='1'", alors il serait de retour l'ensemble de la liste des employés.
outils orm déjà de restreindre l'injection sql. si vous suivez leurs normes.si vous voulez être sur le côté sécuritaire, propre alors utiliser les requêtes préparées à se débarrasser de ces types de problèmes.
OriginalL'auteur DavidA
Faire de la méthode @ResponseBody Type dans le contrôleur et dans l'ajax de prendre la Liste de la réussite de la fonction.
Mettre le Jackson Mappeur de fichier dans Pom.xml fichier si vous utilisez Maven
OriginalL'auteur cse