Я пытаюсь перенаправить запрос, полученный от одного контроллера, второму контроллеру с использованием префикса «вперед:» Spring. Однако вместо перенаправления запроса на второй контроллер, как и следовало ожидать, запрос обрабатывается первым контроллером снова и снова (пока я не получу StackOverflowError). Это заставило меня подумать, что это может относиться к «/ app/pong» как относительный путь, но я не уверен, почему это так. Неужели я не понимаю, как работать «вперед»? Есть что-то, чего я здесь не хватает?Использование префикса Spring вперёд: StackOverflowError
Контроллеры:
@Controller
public class ControllerOne {
@RequestMapping(value = "/ping", method = RequestMethod.GET)
public String doPing(HttpServletRequest request) {
log.debug("Ping?");
return "forward:/app/pong";
}
}
@Controller
public class ControllerTwo {
@RequestMapping(value = "/pong", method = RequestMethod.GET)
public String doPong(HttpServletRequest request) {
log.debug("Pong!");
return "pong";
}
}
сервлет-отображение:
<servlet-mapping>
<servlet-name>test-servlet</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
вид распознаватель:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
Что произойдет, если вы попробуете «вперед: приложение/понг»? – CodeChimp
То же самое происходит, когда я пытаюсь использовать «forward: app/pong». – user2209632
Это работает, если вы используете перенаправление: вместо переадресации: – arahant