[SPRING] 봄 3.2 mvc, 영구 상태 코드와 함께 redirectview의 일부로 컨트롤러 내에서 URL을 다시 쓰는 방법
SPRING봄 3.2 mvc, 영구 상태 코드와 함께 redirectview의 일부로 컨트롤러 내에서 URL을 다시 쓰는 방법
@RequestMapping(value = "/Foo/{id}/{friendlyUrl:.*}", method = RequestMethod.GET)
public ModelAndView getFoo(@PathVariable final Long id, @PathVariable final String friendlyUrl) {
따라서 ID와 모든 문자열을 일치시킵니다. 그러나 사용자가 지정한 문자열을 보길 원합니다.
foo = fooService.get(id); //use id from pathvariable
redirectView = new RedirectView(foo.getCorrectUrl()); //set url to correct url, not that in path
redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); //moved permanently
modelAndView = new ModelAndView(redirectView);
modelAndView.setViewName("myFoo.jsp");
return modelAndView;
사용자가 볼 수있는 URL을 제외하고 모두 잘 작동합니다.
Stackoverflow 사이트의 기존 질문에서 질문 제목이 변경 될 때와 동일한 기능을 수행합니다 (예정).
수정, 이제 거의 작동하는 아래 작업하기
return new ModelAndView("redirect:/Foo/"+id+"/"+foo.getUrl());
하지만 임시로 이동 한 상태 코드를 반환합니다. 영구 301이 필요합니다.
다시 작성한 URL과 spring-mvc 컨트롤러를 사용하여 영구적으로 이동 된 상태 코드를 모두 얻는 방법입니까?
해결법
-
==============================
1.코드에서
코드에서
foo = fooService.get(id); //use id from pathvariable redirectView = new RedirectView(foo.getCorrectUrl()); //set url to correct url, not that in path redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); //moved permanently modelAndView = new ModelAndView(redirectView); modelAndView.setViewName("myFoo.jsp"); return modelAndView;
modelAndView.setViewName ( "myFoo.jsp") 호출; ModelAndView 컨스트럭터에 전달 된 View (redirectView 참조)의 값을 효과적으로 대체합니다. 따라서이 경우 setViewName을 호출하면 안됩니다.
from https://stackoverflow.com/questions/14089885/spring-3-2-mvc-how-to-rewrite-url-within-controller-as-part-of-redirectview-wit by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @ Transactional rollbackFor 작동하지 않습니다. (0) | 2019.05.18 |
---|---|
[SPRING] 이메일을 보낸 후 이메일 주소 변경 (GMail postfix relay) [닫힘] (0) | 2019.05.18 |
[SPRING] Spring - Bean이 발견되지 않을 때 예외를 throw하는 대신 null을 주입한다. (0) | 2019.05.18 |
[SPRING] 어떻게 thymeleaf와 POJO를 직렬화? (0) | 2019.05.18 |
[SPRING] Spring 프레임 워크는 임베디드 컨테이너를 시작할 수 없다. (0) | 2019.05.18 |