作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个MainRedirectController
,所有请求和响应都将从该 Controller 重定向。如何将请求参数从 mainRedirect
方法发送到 page1
方法,并将响应参数从 page1
方法发送到 mainRedirect
方法?
public class MainRedirectController{
public ModelAndView mainRedirect(HttpServletRequest request, HttpServletResponse response) {
String page = ServletRequestUtils.getStringParameter(request, "page", null);
if(page.equals("page1")){
//redirect request to page1 controller and
//return reponse coming from page1 controller
}else if(....){
...
}
}
}
public class Page1Controller{
public ModelAndView page1(HttpServletRequest request, HttpServletResponse response) {
response.getOutputStream().print("{\"completed\": \"1\"}");
response.getOutputStream().flush();
return null;
}
}
最佳答案
您需要将“redirect:” View 返回到该页面。只需将其用作构造函数参数即可:
if(page.equals("page1")){
return new ModelAndView("redirect:/page1MappingValue")
}
page1MappingValue 这里是 page1 的地址,具体取决于映射。
您可以在此处阅读有关重定向的更多信息:
http://www.baeldung.com/spring-redirect-and-forward
此外,如果您需要在方法内部获取响应并且不需要直接返回它,则可以使用 RestTemplate-s:
https://spring.io/guides/gs/consuming-rest/
它将允许您获得响应并在逻辑的后端使用它。
关于java - 如何从 Spring Controller 重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44362899/
我是一名优秀的程序员,十分优秀!