SpringMVC之ModelAndView
一、SpringMVC输出模型数据的几种常见途径
1、ModelAndView
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Controller public class SpringmvcDemo { @RequestMapping (value = "/testModelAndView" , method = RequestMethod.GET) public ModelAndView testSpringMVC() { // 使用ModelAndView的方式 ModelAndView mav = new ModelAndView(); mav.addObject( "username" , "damaomao" ); mav.setViewName( "testModelAndView" ); System.out.println( "测试ModelAndView" ); return mav; } } |
2、Map<Object,Object>集合
1 2 3 4 5 6 7 8 9 10 11 12 | @Controller public class SpringmvcDemo { @RequestMapping (value = "/testModelAndView" , method = RequestMethod.GET) // 使用返回值是String类型,参数为map public String testSpringMVC01(Map<String,Object> map) { map.put( "user01" , "xiaomao" ); map.put( "user02" , "xiaomaomao" ); map.put( "user03" , "xiaoxiaomaomao" ); return "testModelAndView" ; } } |
3、Model对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Controller public class SpringmvcDemo { @RequestMapping (value = "/testModelAndView" , method = RequestMethod.GET) // 使用返回值是String类型,参数为Model public String testSpringMVC01(Model model) { HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put( "user01" , "haha" ); hashMap.put( "user02" , "hehe" ); hashMap.put( "user03" , "heihei" ); model.addAllAttributes(hashMap); return "testModelAndView" ; } } |
二、处理Model源码参考
通过上面源码看出使用上述几种输出模型本质上都是Servlet中的request.getDispatcher.forward(request,response)的方式往域对象中存储值.
三、处理View源码参考
1、一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名处理
2、如果返回的字符串中带forward:或redirect:前缀时,SpringMVC 会对他们进行特殊处理:将 forward: 和redirect: 当成指示符,其后的字符串作为URL来处理
例如:
redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作
forward:success.jsp:会完成一个到 success.jsp 的转发操作
分类:
Springmvc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?