栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot核心技术-Web开发-复杂参数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot核心技术-Web开发-复杂参数

Map、Model(map、model里面的数据会被放在request的请求域 request.setAttribute)、Errors/BindingResult、RedirectAttributes( 重定向携带数据)、ServletResponse(response)、SessionStatus、UriComponentsBuilder、ServletUriComponentsBuilder

1、测试
@Controller
public class RequestController {
    @GetMapping("/params")
    public String textParam(Map map,
                            Model model,
                            HttpServletRequest request,
                            HttpServletResponse response) {
        map.put("map-msg", "map-hello");
        model.addAttribute("model-msg", "model-hello");
        request.setAttribute("request-msg","request-hello");
        response.addcookie(new cookie("c1","v1"));
        return "forward:/success";
    }

    @GetMapping("/success")
    @ResponseBody
    public Map success(@RequestAttribute(value = "msg",required = false) String msg,HttpServletRequest request) {
        Map map = new HashMap<>();
        map.put("msg", msg);
        map.put("map-msg", request.getAttribute("map-msg"));
        map.put("model-msg", request.getAttribute("model-msg"));
        map.put("request-msg", request.getAttribute("request-msg"));
        return map;
    }

}

运行结果: 

 

2、 原理

Map的参数解析器:MapMethodProcessor

内部解析代码:会返回 mavContainer.getModel();mavContainer是ModelAndViewContainer类型

ModelAndViewContainer的getModel()返回的是BindingAwareModelMap对象,是Model 也是Map

mavContainer.getModel(); 获取到值的

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号