我有以下代碼:我得到這個異常java.lang.IllegalStateException當我嘗試重定向到另一頁
- util.library.mvc.Controller =>控制器從Servlet的
- 模塊擴展.user.controllers.UpdateController =>一個控制器實現
在控制器父類我有王氏以下內容的方法:
public void redirect(HttpServletResponse response, String url)
throws IOException
{
response.sendRedirect(url);
}
但是當我嘗試使用它在我的控制器執行給了我以下異常:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Integer id = Integer.parseInt(request.getParameter("id"));
UserRepository users = new UserRepository(request);
User user = users.getUser(id);
// My validation :
if (user == null) {
this.redirect("list"); // throws me an exception
}
request.setAttribute("user", user);
request.setAttribute("action", "update");
request.setAttribute("legend", "Update User");
this.render(request, response, "/user/form");
}
我得到的異常信息在西班牙,但我把它翻譯如下:
java.lang.IllegalStateException: I can not forward after response has been carried out.
util.library.mvc.Controller.render(Controller.java:31)
modules.user.controllers.UpdateController.doGet(UpdateController.java:33)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
然而,當我在這方面使用這種方法:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = new User();
user.populate(request);
UserRepository userRepository = new UserRepository(request);
userRepository.update(user);
this.redirect(response, "list");
}
它工作正常。
任何幫助?
讓我們完整的堆棧跟蹤重寫代碼。 –
這個異常很明顯在'render'方法中發生。我們來看看。 –