我試圖使用Spring的「forward:」前綴將從一個Controller接收到的請求轉發給第二個Controller。但是,並不像我所期望的那樣將請求轉發到第二個控制器,而是由第一個控制器一次又一次地處理該請求(直到收到StackOverflowError爲止)。這使我認爲它可能將「/ app/pong」視爲某種相對路徑,但我不確定爲什麼會出現這種情況。我誤解了「前進:」應該如何工作?有什麼我在這裏失蹤?使用Spring「forward:」導致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映射:
<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>
如果嘗試使用「forward:app/pong」,會發生什麼情況? – CodeChimp
當我嘗試使用「forward:app/pong」時,會發生同樣的事情。 – user2209632
如果你使用重定向:而不是轉發: – arahant