Redirecting and forwarding to views

In this section, you will learn about redirecting and forwarding views through prefixes.

Redirecting and forwarding to views

Redirecting and forwarding to views

In this section, you will learn about redirecting and forwarding views through prefixes.

Sometimes it became necessary, before the view is resolved, to issue redirect back to the client. For example, when one controller is invoked through form POST but response is really for another controller. In this case, we need normal internal forward which means other controller will also see the posted data which can create confusion. Other reason to execute the redirect before displaying result is to avoid multiple form submission.

The redirect: prefix

If the returned view name has prefix redirect:, the UrlBasedViewResolver and all its subclass get the indication that a redirect need to perform. The rest of the returned view name will be considered as redirect URL.

@RequestMapping("login",method = RequestMethod.POST)
public String showForm(Map model) {
..............................
return "redirect:login";
}



The forward: prefix

If the returned view name has prefix forward: , the UrlBasedViewResolver and all its subclasses get the indication that a forward is needed. The rest of the returned view name will be considered as forward URL. But forward is useful where primarily you are using another view technology  but want to force a forward of a resource which is handled by the Servlet/JSP engine.

@RequestMapping("loginform",method = RequestMethod.POST)
public String showForm(Map model) {
..............................
return "forward:login";
}