我有一个jsp页面,根据url列出信息。 例如,url可以是: “http://localhost:8080/group?ID=27” 并且jsp将列出这个特定“组”的所有“人”。
在这个Jsp页面(/WEB-INF/views/group.jsp)中,我有一个表单来添加一个新的“人”。 我只想要,在提交表单并在数据库中添加用户之后,我回到第一个网址:“http://localhost:8080/group?ID=27”,再次使用新用户查看列表。
在我的doPost()方法中,我有这个:
public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
InfoUser infoUser = new InfoUser();
infoUser.setName(request.getParameter("name"));
infoUser.setGroup_id(Integer.parseInt(request.getParameter("group_id")));
infoUser.setDescription(request.getParameter("description"));
infoUserDao.add(infoUser);
this.getServletContext().getRequestDispatcher("/WEB-INF/views/group.jsp").forward(request,response);
}
但是当然,在doPost()方法之后,我回到group.jsp,它有这个url:“http://localhost:8080/group”
有没有在发布后回到“http://localhost:8080/group?ID=27”? 谢谢你的帮助
答案 0 :(得分:1)
您可以将用户重定向到正确的地址(这需要另外请求):
response.sendRedirect("/group?ID=27");
或者,您可以在页面加载后使用JavaScript更新浏览器中的URL:
window.history.pushState("object or string", "Title", "/group?ID=27");
答案 1 :(得分:0)
为了您的信息,这是我用来解决问题的代码:
public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
InfoPoint infoPoint = new InfoPoint();
infoPoint.setName(request.getParameter("name"));
infoPoint.setLength_id(Integer.parseInt(request.getParameter("length_id")));
infoPoint.setDescription(request.getParameter("description"));
infoPointDao.ajouter(infoPoint);
int ID = infoPoint.getLength_id();
request.setAttribute("infoPoints", infoPointDao.lister(ID));
response.sendRedirect("/points?ID="+ID);
}
希望有一天能帮助别人;)