網頁

2017/12/8

Spring MVC 從Controller的方法重新導向至頁面

如果要從SpringMVC的Controller的方法重新導向到jsp或html頁面,可以回傳prefix為redirect:的字串。

這邊的轉向是指重新導向(redirect)而不是轉交(forward)。通常在後端轉交給jsp都是利用SpringMVC的ModelAndView搭配ViewResolver的設定,例如

return new ModelAndView("helloworld");

而重新導向是重送一次請求,例如下面範例收到請求後重新導向context path下的goodbye.jsp(也就是應用程式目錄的WebContent/goodbye.jsp)。

@Controller
@RequestMapping(value="/hello")
public class HelloController {
  
  @RequestMapping(value="/sayhello")
  public String registerMember() {
    
    System.out.println("hello");

    return "redirect:goodbye.jsp"; // 重新導向到goodbye.jsp
  }
  
}

或是使用ModelAndView

@Controller
@RequestMapping(value="/hello")
public class HelloController {
  
  @RequestMapping(value="/sayhello")
  public ModelAndView registerMember() {
    
    System.out.println("hello");

    return new ModelAndView("redirect:/goodbye.jsp"); // 回傳ModelAndView物件,重新導向到goodbye.jsp
  }
  
}

參考:

沒有留言:

張貼留言