특정 컨트롤러 동작 후에 사용자를 새로운 페이지로 리다이렉트하는 간단한 스프링 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;
}
}
이 스프링 MVC 애플리케이션은 다른 여러 인스턴스가있는로드 밸런서 뒤에 있습니다. 각 호스트에는 고유 한 호스트 이름이 있습니다. 로드 밸런서는 SSL로 구성되며 인스턴스는 그렇지 않습니다. 내가 알고 싶은 무엇
기본 리디렉션 동작을 재정의하는 가장 좋은 방법입니다. 현재 응용 프로그램은 https://mysite.com으로 시작하지만 사용자가 리디렉션이 필요한 작업을 수행하면 응용 프로그램이 사용자를 http://some.hostnameX.com으로 리디렉션합니다.
현재 저는 사용자를 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;
}
이 동작을 재정의하는 더 나은 방법이 있나요 :
loadbalancer.url=https://mysite.com
그런 다음 컨트롤러에서, 나는 다음 있나요?
내가 뭘 찾고 있었는지 큰 대답! 다른 사람이 이것을 구현하는 경우 약간의 수정, REDIRECT_URL_PREFIX 이미 ":", 그래서 하나를 추가 할 필요가 포함되어 있습니다. – arcdegree
좋은 캐치. 정확성에 대한 답을 조정했습니다. – Bart