1. 程式人生 > >SpringMVC學習:redirect URL中的貓膩

SpringMVC學習:redirect URL中的貓膩

在Eclipse裡建了一個web project:SpringMVCCase,釋出到 tomcat 裡以後,所有的URL都長這樣:

當前用 POST 請求

執行以下控制器方法,執行完業務邏輯後,把URL 重定向:

@RequestMapping("/spitter")
public class SpitterHandler {


 @RequestMapping(value="/register", method=POST)
 public String processRegistration(Spitter spitter) {
  spitterRepository.save(spitter);
  
  return "redirect:spitter/" + spitter.getUserName();
 }

這樣,重定向之後,瀏覽器中當前 URL 變成了:

這是正確的。 但是最開始的時候,我無意中在"redirect:" 後面多打了一個空格:
return "redirect: spitter/" + spitter.getUserName();

結果當前URL變成了:

這簡直是潛規則啊,有空格就從當前URL的hostname後起構造 URL,沒有空格就從當前 URL 的相對路徑開始構造。

然後我又試了試這樣:
return "redirect: spitter/" + spitter.getUserName();
這次被重定向到這個 URL:
@RequestMapping("/spitter")

去掉空格,效果完全一樣。
return "redirect:spitter/" + spitter.getUserName();

貓膩太多,坑太多。