在map、model、modelAndView中存放数据 回显

复杂参数

在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;

    }
}

运行结果

原文地址:https://www.cnblogs.com/d534/p/15411604.html