复杂参数
在map、model、modelAndView中存放数据,本质上都是在request中存放数据
controller层
package com.xiang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/10/14 0:47
*/
@Controller
public class RequestAttributeController2 {
@RequestMapping("/fo3")
public String fo3(HttpServletRequest request, Map<String, Object> map, Model model, ModelMap modelMap, ModelAndView modelAndView) {
// 存在数据
request.setAttribute("name", "xiang");
map.put("gender", "男");
model.addAttribute("age", 18);
modelMap.addAttribute("classNo", "软件一班");
// modelAndView.getModel().put("stuNum", 19301041); //这儿有bug 数据回显为 null
modelAndView.addObject("stuNum", 19301041);
// 转发到另一个controller中
return "forward:/fo4";
}
@ResponseBody
@RequestMapping("/fo4")
public Object fo4(HttpServletRequest request,
@RequestAttribute("name") String name,
@RequestAttribute("gender") String gender,
@RequestAttribute("age") Integer age,
@RequestAttribute("classNo") String classNo,
@RequestAttribute(value = "stuNum", required = false) Integer stuNum) //required = false 不写这个会报错;
{
HashMap<Object, Object> map = new HashMap<>();
map.put("name", "向向");
map.put("gender", "男");
map.put("age", 20);
map.put("classNo", "软件开发一班");
map.put("stuNum", 123456);
System.out.println(map);
// return map;
ArrayList<Object> list = new ArrayList<>();
request.setAttribute("id", 001);
Object name1 = request.getAttribute("name");
Object gender1 = request.getAttribute("gender");
Object age1 = request.getAttribute("age");
Object classNo1 = request.getAttribute("classNo");
Object stuNum1 = request.getAttribute("stuNum");
list.add(name1);
list.add(gender1);
list.add(age1);
list.add(classNo1);
list.add(stuNum1);
System.out.println(list);
// return list;
ArrayList<Object> arrayList = new ArrayList<>();
arrayList.add(map);
arrayList.add(list);
return arrayList;
}
}