[SPRING] 한 컨트롤러 메서드에서 다른 컨트롤러 메서드로 리디렉션
SPRING한 컨트롤러 메서드에서 다른 컨트롤러 메서드로 리디렉션
내 응용 프로그램에서 Spring 3 및 Tiles 2를 사용하고 있으며 리디렉션과 관련하여 약간의 문제가 있습니다. 가급적이면 Controller1 메서드에서 Controller2 메서드로 호출하거나 리디렉션 할 수는 있지만 지금까지 성공하지 못했습니다.
pageviews.properties 파일에 새 항목을 만들려고했습니다. 그렇게하면 Controller1에서이 이름을 반환 할 수 있으며 xml 파일에서 내 타일 def name을 찾습니다.
createRejectionEmail.(parent)=tilesView
createRejectionEmail.url=createRejectionEmail.page
redirectRejectionEmail.(class)=org.springframework.web.servlet.view.RedirectView
rediectRejectionEmail.contextRelative=true
redirectRejectionEmail.url=createRejectionEmail.page
그러나 아래에 표시된 것처럼 돌아가려고하면 URL에 createRejectionEmail이 포함됩니다. 대신 타일 defs에서 조회를 수행하는 대신 URL의 일부로 createRejectionEmail이 포함됩니다. mav.setViewName ( "redirectRejectionEmail"); 돌아 오는 mav;
<definition name="createRejectionEmail.page" extends="brandedLayout">
<put-attribute name="targetFunction" value="status" />
<put-attribute name="content" value="/WEB INF/jsp/pages/status/createRejectionEmail.jsp" />
</definition>
내 현재 설정은 다음과 같습니다.
<bean id="resourceViewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
p:order="0" p:basename="config.spring.viewresolution.pageviews"/>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/jsp/**/views.xml</value>
</list>
</property>
</bean>
어떤 도움이나지도라도 크게 부탁드립니다!
해결법
-
==============================
1.컨트롤러에서 반환 유형을 ModelAndView로 변경하고 아래 코드를 반환 할 수 있습니다. 그러면 요청이 리디렉션되고 컨트롤러에 새 URL을 요청합니다.
컨트롤러에서 반환 유형을 ModelAndView로 변경하고 아래 코드를 반환 할 수 있습니다. 그러면 요청이 리디렉션되고 컨트롤러에 새 URL을 요청합니다.
return new ModelAndView("redirect:/myURL");
또는 컨트롤러 메서드에서 HttpServletResponse를 가져 와서 리디렉션을 반환 할 수 있습니다.
public void myController(HttpServletResponse response){ response.sendRedirect("/myURL"); }
-
==============================
2.
@RequestMapping(value = "/timeout", method = RequestMethod.GET) public ModelAndView loginForm(HttpServletRequest request,HttpServletResponse response) { return new ModelAndView("redirect:/app/timeout"); }
이 메소드 핸들러가 호출되면 / app / timeout 컨트롤러로 리디렉션됩니다.
from https://stackoverflow.com/questions/17218856/redirect-from-one-controller-method-to-another-controller-method by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 빈 파괴 메소드, 싱글 톤 및 프로토 타입 스코프 (0) | 2019.01.22 |
---|---|
[SPRING] JPA와 Spring을 사용하여 목록에서 필드가있는 고유 한 행을 찾는 방법? (0) | 2019.01.22 |
[SPRING] @Autowire 이상한 문제 (0) | 2019.01.21 |
[SPRING] Spring MVC에서 @JavaConfig가 작동하지 않는 이유는 무엇입니까? (0) | 2019.01.21 |
[SPRING] 봄 데이터 몽고 그룹 (0) | 2019.01.21 |