SpringMVC學習:redirect URL中的貓膩
阿新 • • 發佈:2019-02-14
在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();
貓膩太多,坑太多。