转发和重定向中携带变量
有时候我们需要在转发中或者重定向中携带变量,并且在转发或者重定向到的请求方法中获取变量,Spring MVC都可以帮我们做到这两点
转发中携带变量
当我们需要在转发中携带变量和获取变量时,我们可以使用以下几种方式
原生HttpServletRequest类
使用原生的HttpServletRequest类,可以做到在转发中携带变量,也可以使用他来获取变量
携带变量时,将HttpServletRequest类添加在请求方法的参数列表中,然后调用setAttribute
方法就可以将变量以键值对的方式保存在request域中
@Controller
public class MyController {
@RequestMapping("/user")
public String queryUser(HttpServletRequest request) {
request.setAttribute("name","cong");
request.setAttribute("age",18);
return "forward:/other";
}
}
获取request域中的变量也是同样的使用方式,将HttpServletRequest类添加在请求方法的参数列表中,然后调用getAttribute
方法
@Controller
public class MyController {
@RequestMapping("/user")
public String queryUser(HttpServletRequest request) {
request.setAttribute("name", "cong");
request.setAttribute("age", 18);
return "forward:/other";
}
@RequestMapping("/other")
@ResponseBody
public Map<String, Object> other(HttpServletRequest request) {
Object name = request.getAttribute("name");
Object age = request.getAttribute("age");
HashMap<String, Object> result = new HashMap<>();
result.put("name"<