Comment envoyer json ouput de servlet à jsp?

Je fais un contrôle de l’inventaire. J’essayais de vérifier si la quantité d’article entrée est inférieure à la quantité en stock ou non. Je reçois la sortie Servet JSON. Mais je ne peux pas le renvoyer à jsp.

Jsp JQuery code.

 $('document').ready(function() { $('#submit_btn').click((function() { var $name = $("select#item_name").val(); var $qty = $("input#qty").val(); $.post('BuyItem', {item_name: $name, item_qty: $qty}, function(data) { if (data !== null) { alert(text(data)); $("input#qty").val(""); } else { alert("Invalid Item!"); } } ); })); });  

Et ceci est une requête servlet.

  while (rs.next()) { if (rs.getInt("qty") > qty) { int id = rs.getInt("item_id"); Gson gson = new Gson(); Ssortingng json = gson.toJson(id); // System.out.println("one" + json); response.setContentType("application/json"); // response.setCharacterEncoding("UTF-8"); response.getWriter().print(json); } else { Gson gson = new Gson(); Ssortingng json = gson.toJson("Stock doesn\'t have enough item quantity."); // System.out.println("two" + json); response.setContentType("application/json"); // response.setCharacterEncoding("UTF-8"); response.getWriter().print(json); } } 

La sortie de System.out.println () provient toujours correctement. Mais ne pas renvoyer à jsp. S’il vous plait, j’ai besoin de votre aide avec ceci.

Il est également recommandé de créer une classe DTO avec les propriétés que vous devez transmettre à la bibliothèque gson.

  public class ResponseDTO implements Serializable{ private Integer id; //more properties ... public Integer getId() { return id; } public void setId(Integer id) { this.id= id; } // other getters & setters } 

et dans votre boucle, définissez les valeurs sur l’object dto, puis transmettez-le à gson.

 Gson gson = new Gson(); ResponseDTO dto = null; Ssortingng json = ""; response.setContentType("application/json"); ...... if (rs.getInt("qty") > qty) { dto = new ResponseDTO(); int id = rs.getInt("item_id"); dto.setId(id); ...... json = gson.toJson(dto); } else { ...... // similar json = gson.toJson("{data: 'Some message'}"); } response.getWriter().print(json); 

Gson vous donnera la structure JSON appropriée du côté client. essayer et voir!

Gson permet aux chaînes et aux nombres de se sérialiser en JSON par eux-mêmes (ce qui est probablement correct selon la définition), mais de nombreuses autres bibliothèques considéreraient ce JSON invalide.

Essayez d’envelopper votre réponse dans un object de sorte que la réponse soit {"id": 5} et pas seulement 5 .