spring mvc 从Controller向页面传数据
之前章节中已经详细介绍了Controller获取请求参数,Controller中方法的返回值,此章节我们详细介绍一下从Controller向页面传值的方式
Controller向页面传值方式
- 使用Request对象保存数据
- 使用Session对象保存数据
- 使用ModelAndView保存数据
- 使用Model保存数据
- 使用ModelMap保存数据
- 使用HashMap保存数据
- 使用@ModelAttribute注解
此案例基于上一章controller方法中的返回值基础上继续做的
案例回顾:
jsp中:
<body>This is demoController!!!<br>获取绑定数据:${msg }
</body>
controller:
@Controller
@RequestMapping("/demo")
public class DemoController {//...
}
1)使用Request对象保存数据
老方法,使用Request进行转发数据的绑定。在controller中编写demo09方法:
@RequestMapping("/demo09.do")
public String demo09(HttpServletRequest request){request.setAttribute("msg", "通过request绑定数据传递给页面");return "jsp/demo";
}
测试:
2)使用Session对象保存数据
也是老方法,在HttpSession对象中保存数据,创建demo10方法
@RequestMapping("/demo10.do")
public String demo10(HttpSession session){session.setAttribute("msg", "通过session绑定数据传递给页面");return "jsp/demo";
}
3)使用ModelAndView保存数据
上一章案例章已经测试过,使用AmodelAndView可以绑定数据以及选中视图:
@RequestMapping("/demo11.do")
public ModelAndView demo11(){ModelAndView modelAnnView=new ModelAndView();//绑定数据modelAnnView.addObject("msg","通过ModelAndView绑定数据传递给页面");//选择视图modelAnnView.setViewName("jsp/demo");return modelAnnView;
}
4)使用Model保存数据
Model是Spring mvc默认支持的数据类型,可以在参数中直接定义:
@RequestMapping("/demo12.do")
public String demo12(Model model){//绑定数据model.addAttribute("msg", "通过Model绑定数据传递给页面");//选择视图return "jsp/demo";
}
5)使用ModelMap保存数据
ModelMap是继承自Model,所以同样可以在参数中定义:
@RequestMapping("/demo13.do")
public String demo13(ModelMap map){//绑定数据map.put("msg", "通过ModelMap绑定数据传递给页面");//选择视图return "jsp/demo";
}
6)使用HashMap保存数据
@RequestMapping("/demo14.do")
public String demo14(HashMap<String, Object> map){//绑定数据map.put("msg", "通过HashMap绑定数据传递给页面");//选择视图return "jsp/demo";
}
7)使用@ModelAttribute注解
@ModelAttribute的可以在方法上使用,也可以在方法参数中使用,且用在方法上时对于返回值不同的方法有不容的含义, 而注解本身也可以定义属性,所以@ModelAttribute有多种用法
此处在方法和方法参数上各举一例
先修改jsp为:
<body>This is demoController!!!<br>获取绑定数据Demo对象:${demo }</body>
@ModelAttribute用在方法上
被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。
以一个有返回值的方法举例:
@ModelAttribute("demo")
public Demo addDemo(){return new Demo(1, "张三");
}
@RequestMapping("/demo15.do")
public String demo15(){//选择视图return "jsp/demo";
}
此案例在访问/demo15.do之前先执行了addDemo方法,在model中添加了一个属性名为demo的对象。
测试:
@ModelAttribute用在方法参数上注释方法的参数
此处多了一个注解@ModelAttribute(“demo”),它的作用是将该绑定的命令对象以“demo”为名称添加到模型对象中供视图页面展示使用
@RequestMapping("/demo16.do")
public String demo16(@ModelAttribute("demo") Demo demo){//绑定数据demo.setId(2);demo.setName("李四");//选择视图return "jsp/demo";
}
后面有时间在整理一个@ModelAttribute的详解。
spring mvc 从Controller向页面传数据相关推荐
- Spring MVC 之@Controller@RequestMapping详解
一:配置web.xml 1)问题:spring项目中有多个配置文件mvc.xml dao.xml 2)解决:在web.xml中 <init-param> <param-name& ...
- spring mvc在Controller中获取ApplicationContext
spring mvc在Controller中获取ApplicationContext web.xml中进行正常的beans.xml和spring-mvc.xml的配置: 需要在beans.xml中进行 ...
- 微信小程序.原生.Tabbar 颜色变量 像素换算 缓存 给页面传数据
Tabbar 效果: apps.json中添加tabbar: "tabBar": {"list": [{"pagePath": " ...
- Spring MVC前后台交互(前台ajax传递数据,后台controller接收数据返回json对象)
1.导入jar包 2.JS中用ajax传递用户数据 var data={origin:"register",tel:tel,pwd:pwd};$.ajax({url : " ...
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
作者:ssslinppp 1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...
- spring mvc DispatcherServlet详解之前传---FrameworkServlet
做项目时碰到Controller不能使用aop进行拦截,从网上搜索得知:使用spring mvc 启动了两个context:applicationContext 和WebapplicationCont ...
- spring mvc DispatcherServlet详解之前传---前端控制器架构
前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端.前端控制器既可以使用Filter实现 ...
- Spring MVC笔记 添加错误页面
使用Spring MVC的Web项目,可以使用DispatcherServlet来指定异常页面,下面是具体的配置: 在Spring配置文件中配置: 1 2 3 4 5 6 7 8 9 10 11 12 ...
- Spring MVC中@Controller和@RequestMapping注解详解
在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...
- spring MVC中定义异常页面
如果我们在使用Spring MVC的过程中,想自定义异常页面的话,我们可以使用DispatcherServlet来指定异常页面,具体的做法很简单: 下面看我曾经的一个项目的spring配置文件: &l ...
最新文章
- 分享:给入职新人的IDEA培训教程。
- Attention Mechanism
- 在leangoo里怎么复制删除列表?
- 天胶指数发布 对话国际农民丰收节贸易会海垦集团走出去
- jQuery 3教程(三):jQuery集合
- spring boot记录操作日志
- 解决EditText在ListView Item中,第一次点击无法获取焦点问题
- ICMP (互联网控制消息协议 )是什么
- 2021中国新流量价值洞察报告
- hdu4814 黄金进制转换
- MAC下安装NDKR10e
- 计算机软件水平考试程序员之程序设计知识点汇总,计算机软件水平考试《程序员》复习知识点(5)...
- 静态代理和动态代理的区别
- 51单片机驱动继电器模块点灯
- 电脑被流氓软件入侵?教你彻底清除
- 邓白氏编码申请经验分享
- ubuntu22 使用todesk被远程控制时显示黑屏或者白屏
- html页面怎么判断未登录,未登录用户.html
- php gd图片验证,php笔记之GD库图片创建/简单验证码
- 孙悟空为什么可以做CTO
热门文章
- RNA_seq(1)植物转录组实战(中)之subread工具进行序列比对和转录组生物学定量
- 每日一题/007/级数/设a_n=1-1/2+1/3- ... + (-1)^(n-1)*1/n,求 lim_{n\to\infty}a_n
- 使用MurMurHash在Shodan平台上寻找钓鱼网站
- Raki的读paper小记:Rational LAMOL: A Rationale-Based Lifelong Learning Framework
- Raki的读paper小记:Soft Gazetteers for Low-Resource Named Entity Recognition
- 生产者消费者模型(自己上锁与阻塞队列两版本)
- android 模仿今日头条ViewPager+TabLayout
- 使用ConcurrentDictionary实现轻量缓存
- windows2008r2安装笔记
- 创建 Agg 静态链接库