gpt4 book ai didi

java - 如何将servlet的json输出发送到jsp?

转载 作者:行者123 更新时间:2023-12-02 04:45:33 26 4
gpt4 key购买 nike

我正在进行库存控制。我试图检查输入的商品数量是否少于库存数量。我得到了servet json 输出。但我无法将其发送回jsp。

Jsp JQuery 代码。

<script>
$('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!");
}
}
);
}));
});
</script>

这是 servlet 查询。

   while (rs.next()) {

if (rs.getInt("qty") > qty) {
int id = rs.getInt("item_id");
Gson gson = new Gson();
String 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();
String 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);
}
}


System.out.println() 的输出始终正确。但不发送回jsp。请在这件事上给予我帮助。

最佳答案

您必须做的也是最佳实践是创建一个 DTO 类,其中包含需要传递给 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
}

在循环内,将值设置为 dto 对象,然后将其传递给 gson。

Gson gson = new Gson();
ResponseDTO dto = null;
String 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 将为您提供客户端正确的 json 结构。尝试看看!

关于java - 如何将servlet的json输出发送到jsp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com