[英]how to get view data in JSON format from database using jsp
我想將視圖從HTML列表更改為JSON數據。
這是我在控制器中的代碼:
private void listFeedback(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
Feedback p = new Feedback();
int seller_id = Integer.parseInt(request.getParameter("seller_id"));
List<Feedback> feedbacks = p.all(seller_id);
String format = request.getParameter("format");
if(format == "json"){
String json = new Gson().toJson(feedbacks);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
RequestDispatcher dispatcher = request.getRequestDispatcher("feedbacks/demo.jsp");
dispatcher.forward(request, response);
}
request.setAttribute("feedbacks", feedbacks);
RequestDispatcher dispatcher = request.getRequestDispatcher("feedbacks/list.jsp");
dispatcher.forward(request, response);
}
但是,它仍然可以像以前一樣被查看,沒有任何改變。 我希望將其重定向到demo.jsp,以便可以具有JSON視圖。 有人會幫我做同樣的事情嗎?
UPDATE
我只是忘了把其他東西放在那里,所以這是正確的代碼
else{
request.setAttribute("feedbacks", feedbacks);
RequestDispatcher dispatcher = request.getRequestDispatcher("feedbacks/list.jsp");
dispatcher.forward(request, response);
}
非常感謝您回答我的問題。
看起來format
值為null或不是json
。 如果所存在的代碼中if
執行,則最終會具有錯誤(下一個代碼行,你都轉發到另一個JSP)。
“做出響應后無法轉發”
進行以下更改以使其起作用:
您想返回JSON時就不需要轉發。 只需在下面添加以下代碼
if("json".equals(format)){
String json = new Gson().toJson(feedbacks);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
return; // return from here or change to if-else
}
整個代碼:
private void listFeedback(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
Feedback p = new Feedback();
int seller_id = Integer.parseInt(request.getParameter("seller_id"));
List<Feedback> feedbacks = p.all(seller_id);
String format = request.getParameter("format");
if("json".equals(format)){
String json = new Gson().toJson(feedbacks);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
return;// return from here or change to if-else
}
request.setAttribute("feedbacks", feedbacks);
RequestDispatcher dispatcher = request.getRequestDispatcher("feedbacks/list.jsp");
dispatcher.forward(request, response);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.