我將使用StackOverflow的用戶配置文件頁面作爲示例。比方說,我們有這個網址:Spring MVC - 使用路徑變量編輯響應URL
https://stackoverflow.com/users/2036414/userlogin
如果我們改變(在瀏覽器的地址欄中編輯)最後的路徑變量是這樣的:
https://stackoverflow.com/users/2036414/aWordThatIsNotTheLoginOfThisUser
...並按下回車,返回的URL將是第一個,這意味着這個變量被設置爲正確的登錄,基於另一個變量,這可能是用戶的ID(2036414)。換句話說,該URL被修正爲:
https://stackoverflow.com/users/2036414/userlogin
我的問題是:如何做到這一點使用Spring MVC?這裏是我的控制器:
@RequestMapping(value="/{id}/{login}", method = RequestMethod.GET)
public String showPerfilUsuario(@PathVariable("id") long id, @PathVariable("login") String login, Map<String, Object> model){
Usuario usuario = usuarioService.buscarUsuarioPorId(id);
model.put("usuario", usuario);
return "usuario"; //that's the tiles definition's name
}
任何幫助將是apreciated,謝謝。
不要忘記(在這種情況下),如果用戶名已經正確,你不應該重定向;否則你可能會進入重定向循環:) –
它工作得很好!我認爲在這個解決方案中,但我忘記了驗證,這在這種情況下至關重要。謝謝! – vitorgreati
@vitorgreati不客氣。請注意Michal的評論。 –