java - 如何从 Spring Controller 重定向?

标签 java spring spring-mvc

我有一个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/

相关文章:

spring - 如何在使用 Spring MVC 时使用 send.redirect()

c# - 在 Windows 中对 'live' 文件使用 grep

java - Web 应用程序的通用模块化设计

spring - 如何使用Spring Data ElasticsearchTemplate连接到Amazon Elasticsearch Service?

java - Spring创建bean但不注入(inject)它

java - 无法在联系人实体中将位置模型设置为空

google-app-engine - Spring MVC 3.2 Backbone.js 帖子

java - Java 中的关键字突出显示问题(使用 System.out)

java - 如何在 Android 中使用一组权限同时安装多个应用程序?

java - 无法在 Spring LDAP 中进行身份验证