ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用:用来在一个请求过程中传递处理的数据。ModelMap或者Model通过addAttribute方法向页面传递参数,其中addAttribute方法参数有多种方式:
在完成了 实战SSM_O2O商铺_33【商品】商品编辑之Service层的实现之后,我们继续来实现Controller层的代码部分。
Spring MVC应用中,我们经常需要在Controller将数据传递到JSP页面,除了可以通过HttpServletRequest域传递外,Spring MVC还提供了两个Api,分别为Model接口和ModelMap类。接下来看看如何使用?
Spring MVC是一种基于MVC(Model-View-Controller)设计模式的Web框架,其中Controller处理用户请求并向View(JSP或HTML页面)返回模型数据。在这个过程中,Controller必须将数据传递到View中,这通常是通过将数据存储在request域对象中实现的。在Spring MVC中,我们可以使用多种方法将数据存储在request域对象中。
注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。 首先介绍ModelMap[Model]和ModelAndView的作用 Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。 ModelMap ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以
1. 获取前端传递过来的Product对象,通过FastJson提供的api将其转换为Product对象
在上面的代码示例中,我们定义了一个ExampleController,并将@RequestMapping注解用于类级别,以指定所有映射请求的共同前缀。在方法级别上,我们使用了@GetMapping注解来指定处理GET请求的exampleWithModelMap方法,并且将一个ModelMap参数添加到该方法的参数列表中。
SpringMVC 是一种非常流行的 Web 框架,它采用了 Model-View-Controller(MVC)的架构模式,以帮助开发人员更好地组织和管理 Web 应用程序的代码。在 SpringMVC 中,Model、ModelMap 和 Map 是常用的三种用于在 Controller 层向 View 层传递数据的类,它们之间有着密切的关系。
com.artisan.o2o.web.shopadmin.ShopController.java
代码地址: https://github.com/yangshangwei/o2o
BlockingQueue<Runnable> workQueue:持有等待执行的任务队列.
Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型*的
Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的
在了解这三者之前,需要知道一点:SpringMVC在调用方法前会创建一个隐含的数据模型,作为模型数据的存储容器, 成为”隐含模型”。 也就是说在每一次的前后台请求的时候会随带这一个背包,不管你用没有,这个背包确实是存在的,用来盛放我们请求交互传递的值;关于这一点,spring里面有一个注解: @ModelAttribute :被该注解修饰的方法,会在每一次请求时优先执行,用于接收前台jsp页面传入的参数 例子:
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数: addAttribute(String key,Object value); 在页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示modelmap中的数据。 modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的返回值来设置跳转url地址别名或者物理跳转地址。
第5章 处理响应数据 5.1 SpringMVC 输出模型数据概述 5.1.1提供了以下几种途径输出模型数据 ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据 Map 及 Model: 入参为 org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。 5.2 处理模型数据之 ModelAndV
平时写接口,newHashMap,@ResponseBody 返回json对象,没什么问题
业务场景:SpringMVC项目使用ModelAndView进行重定向跳转到另外一个action时,需要在url后面带上参数
Springfox的前身是swagger-springmvc,是一个开源的API doc框架,可以将我们的Controller的方法以文档的形式展现,基于Swagger。
Springfox基于Swagger,能更方便的集成到spring boot 中,Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger的目标是对REST API定义一个标准的和语言无关的接口,可让人和计算机无需访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过Swagger进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger消除了调用服务时可能会有的猜测。
(一)使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图。从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。
写这篇文章非我本意,因为我觉得对如题的这个几个类的了解还是比较基础且简单的一块内容,直到有超过两个同学问过我一些问题的时候:通过聊天发现小伙伴都听说过这几个类,但对于他们的使用、功能定位是傻傻分不清楚的(因为名字上都有很多的相似之处)。 那么书写本文就是当作一篇科普类文章记录下来,已经非常熟悉小伙伴就没太大必要往下继续阅读本文内容了,因为这块不算难的(当然我只是建议而已~)。
在SpringMVC中,域对象(也称为作用域对象)是一种可以在请求处理过程中共享数据的机制。SpringMVC提供了多种类型的域对象,包括request域、session域和application域。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Map 是 Java 中的一个接口,Map 是 Java 中的一个接口,它提供了一些方法,用于存储和获取键值对。在 SpringMVC 中,我们也可以使用 Map 来向 View 传递数据。Map 可以存储任何类型的键值对,所以它在灵活性方面比 Model 和 ModelMap 更高。
Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)
Thymeleaf提供了一组Spring集成,使您可以将其用作Spring MVC应用程序中JSP的全功能替代品。
ModelAndView mav=new ModelAndView("test1"); mav.addObject("time", new Date()); mav.addObject("time2", "吴"); mav.getModel().put("name", "pmb"); return mav; addObject 与 getModel().put 可视为等价 public class ModelAndView { /** View instance or view name S
第六节 属性域使用(request域、session域、application域) 1.request域
1.注解 @Controller控制器定义 和Struts1一样,Spring的Controller是Singleton的。这就意味着会被多个请求线程共享。因此,我们将控制器设计成无状态类。 在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义: <context:component-scan base-package
很久不使用了,可以拿代码复制到项目工程下作为Demo随时查看,小白入门开发必备!!!
很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能很快用这个上手。 本文的文字和案例根据java web轻量级开发面试教程改编。 1 Spring MVC代码的讲解 步骤一,创建Web项目,编写web.xml,在其中指定使用Spring的MVC,主要的代码如下。 1 <servlet> 2 <servlet-name>spring
Springmvc之向JSP页面提供数据(request,session) 本人独立博客https://chenjiabing666.github.io 准备 Springmvc默认就是转发,因此可以在request域中共享数据 表单提交,注册 <form action="<%=request.getContextPath()%>/user/login.do" method="post"> username:<input type="text" name="username"> p
ActFramework支持的模板引擎 目前ActFramework支持的模板引擎: Rythm (框架内置) - 引擎ID: rythm Beetl - 引擎ID: beetl FreeMarker - 引擎ID: freemarker Mustache - 引擎ID: mustache Thymeleaf - 引擎ID: thymeleaf Velocity - 引擎ID: velocity 注意 如果要使用Rythm以外的其他模板引擎需要在pom.xml文件中添加依赖: Beelt依赖: <depen
上篇文章 描绘了@ModelAttribute的核心原理,这篇聚焦在场景使用上,演示@ModelAttribute在不同场景下的使用,以及注意事项(当然有些关联的原理也会涉及)。
在上一篇《基于HT for Web矢量实现2D叶轮旋转》中讲述了叶轮旋转在2D上的应用,今天我们就来讲讲叶轮旋转在3D上的应用。 在3D拓扑上可以创建各种各样的图元,在HT for Web系统中提供了一些常规的3D模型,但是对于那些比较复杂的模型,比如汽车、人物等模型就无能为力了,那再项目中需要用到这样的模型该肿么办呢?这时候就需要借助专业的3ds Max工具来建模了,然后通过3ds Max工具将模型导出成obj文件,然后再项目中引用导出的obj文件,这样就能成功的使用上复杂的图元了。 在《HT图形组件设计
在上一篇《基于HT for Web矢量实现2D叶轮旋转》中讲述了叶轮旋转在2D上的应用,今天我们就来讲讲叶轮旋转在3D上的应用。 在3D拓扑上可以创建各种各样的图元,在HT for Web系统中提供了
在上一篇《基于HT for Web矢量实现2D叶轮旋转》中讲述了叶轮旋转在2D拓扑上的应用,今天我们就来讲讲叶轮旋转在3D上的应用。 在3D拓扑上可以创建各种各样的图元,在HT for Web系统中提
增加如下查询条件,满足当用户点击某个一级商铺类别的时候,加载改商铺类别下全部的商铺。
在上一篇《基于HT for Web矢量实现2D叶轮旋转》中讲述了叶轮旋转在2D拓扑上的应用,今天我们就来讲讲叶轮旋转在3D上的应用。 在3D拓扑上可以创建各种各样的图元,在HT for Web系统中提供了一些常规的3D模型,但是对于那些比较复杂的模型,比如汽车、人物等模型就无能为力了,那再项目中需要用到这样的模型该肿么办呢?这时候就需要借助专业的3ds Max工具来建模了,然后通过3ds Max工具将模型导出成obj文件,然后再项目中引用导出的obj文件,这样就能成功的使用上复杂的图元了。 在《HT图形组件
参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller ?这在实际项目开发中也是用到的最多的,那么 SpringMVC 的参数绑定是怎么实现的呢?下
freemarker是个不错的模板引擎,在网页静态化的模板使用中口碑很好,今天就用springboot来整合这个模板。
jcaptcha是做图片验证码的,主要说下在springboot 里面的使用方法.
实战SSM_O2O商铺_10【商铺注册】Service层的实现 实现之后,接下来编写控制层的代码
工业方面制作图表,制作模型方面运用到 3d 模型是非常多的,在一个大的环境中,构建无数个相同的或者不同的模型,构建起来对于程序员来说也是一件相当头疼的事情,我们利用 HT 帮大家解决了很大的难题,无数个例子可在官网上查找到 http://hightopo.com/demos/index.html。 本文 Demo 地址: http://hightopo.com/guide/guide/plugin/obj/examples/example_objajax.html 这次我们的例子是将这些实例中的一小部分思想
领取专属 10元无门槛券
手把手带您无忧上云