[英]Passing data from one controller to another without using query string - Spring MVC
我有以下model
@Service
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class InfoHandler {
String url;
public String getBeanData() {
String application = "testApplication";
String mode = "appMode";
url = UriComponentsBuilder.fromPath("/nextPage")
.queryParam("mode", mode)
.queryParam("application", application)
.build()
.toUriString();
return url;
}
}
我的控制器:
@Controller
@RequestMapping("/")
@ComponentScan("com.springplay")
@EnableAutoConfiguration
public class InfoController {
@RequestMapping("/getInfo")
public ModelAndView getInfo(ModelMap model) {
InfoHandler infoHandler = new InfoHandler();
//List<InfoBean> beanList = infoHandler.getBeanData();
String url = infoHandler.getBeanData();
return new ModelAndView("Information", "urlData", url);
}
}
我的观点:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Information Page</title>
</head>
<body>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%-- <c:set var="informationVar" value="${infoData}" /> --%>
<a href="${urlData}"> link to next page</a>
</body>
</html>
在我的下一个控制器中,我使用方法参数中的@RequestParam
访问application
和mode
的值,如下所示
@Controller
@RequestMapping("/")
@ComponentScan("com.springplay")
@EnableAutoConfiguration
public class InfoProcessorController {
@RequestMapping("/nextPage")
public String getInfo(ModelMap model, @RequestParam(value = "application") String application,
@RequestParam(value = "mode") String mode) {
System.out.println("application: " + application);
System.out.println("mode: " + mode);
return "welcome";
}
}
但是我的问题是,是否还有其他方法可以将InfoHandler
类中的application
和modes
的值获取到我的第二个controller
InfoProcessorController
这只是一个例子。 我不想通过查询字符串传递数据的原因是因为我有很多这样的变量想要传递给第二个控制器
我不知道您的真正期望是什么,您知道如问题所显示的那样将它们用作参数,可以将它们放在会话中,这通常是对购物车等执行的操作。 如果您要对大量页面进行大量操作,则需要仔细研究并填写使用方法,您不妨查看一下Spring Webflow。 那可能就是你的追求。 很难说出您的要求是什么,因为尚不清楚您想如何通过它们,或者您会感到满意,我建议您将问题弄清楚。
多种方式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.