2
我有一個簡單的Spring MVC應用程序,它將在用戶執行某些控制器操作後將用戶重定向到新頁面。例如:覆蓋SpringMVC應用程序中的默認重定向URL
@Controller
public class ResponseController {
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String saveObj(HttpServletRequest request, @ModelAttribute(「someObject」) Object obj) {
// logic to validate and save object
return "redirect:/obj/" + id;
}
}
此Spring MVC應用程序運行在具有其他幾個實例的loadbalancer後面。每個都有自己的主機名。負載均衡器配置了SSL,實例不是。
我想知道什麼是覆蓋默認的重定向行爲的最佳實踐。目前,應用程序以https://mysite.com開頭,但用戶執行需要重定向的操作後,應用程序會將用戶重定向到http://some.hostnameX.com。
目前,我有一個屬性用於幫助將用戶重定向到mysite.com。
loadbalancer.url=https://mysite.com
然後,在控制器中,我有以下幾點:
@Value("loadbalancer.url")
String loadbalanerUrl;
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String saveObj(HttpServletRequest request, @ModelAttribute(「someObject」) Object obj){
// logic to validate and save object
return "redirect:" + loadbalancerUrl + "/obj/" + id;
}
有沒有更好的方式來覆蓋這個行爲?
很好的答案,就是我一直在尋找的!如果其他人實現這一點,稍微糾正一下,REDIRECT_URL_PREFIX已經包含一個「:」,所以不需要添加一個。 – arcdegree
好的。我調整了我的答案是否正確。 – Bart