我有以下代码:我得到这个异常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'方法中发生。我们来看看。 –