实现Controller返回数据给页面,Spring MVC 提供了以下几种途径:
ModelAndView:将视图和数据封装成ModelAndView对象,作为方法的返回值,数据最终会存到HttpServletRequest对象中!
Model对象:通过给方法添加引用Model对象入参,直接往Model对象添加属性值。那么哪些类型的入参才能够引用Model对象,有三种类型,分别是 org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map。只要是这些类型的入参,都是指向Model对象的,而且不管定义多少个这些类型的入参都是指向同一个Model对象!
@SessionAttributes:通过给Controller类添加@SessionAttributes注解,该注解的name和value属性值都是Model的key值,意思是指Model中这些key对应的数据也会存到HttpSession,不仅仅存到HttpServletRequest对象中!这样页面可以共享HttpSession中存的数据了!
@ModelAttribute:使用@ModelAttribute注解的方法会在此Controller每个方法执行前被执行,指定@ModelAttribute的name或value都是一样的功能,都是作为key,将注解的方法返回的对象作为value存放到Model中,不指定name和value的话,则以注解的方法返回的类型名称首字母小写作为key。
当然,除了上述的途径,也可以使用传统的方式,那就是直接使用HttpServletRequest或HttpSession对象来存数据,页面上再去取。
注意:Model中存的数据,最终都会存放到HttpServletRequest对象中,页面上可以通过HttpServletRequest对象获取数据。
Springboot2(5)WebMvcConfigurer讲解
Spring Boot 2 WebMvcConfigurer 实现详解请求与视图映射通过 `ViewController` 实现将请求转至特定视图。例如:通过 `@Override` 和 `addViewControllers` 方法配置视图控制器,让访问特定路径时自动返回指定的视图页面。例如访问 `127.0.0.1:8080\/login` 时,直接返回 `login.html` 页面。静态资源映...
Springboot中控制器的使用
(2)在model层,创建一个User实体类。(3)创建控制器UserController(相当于入口main)。(1)在resources\/static路径下创建一个静态页面view1.html。(2)在application.properties中添加静态资源映射。(3)使用springmvc自带的@Controller直接跳转html页面(不带模板引擎的),配合@ResponseBody实现rest AP...
springmvc注解开发详解(springmvc注解开发详解)
springmvc静态资源放问配置 image.png springmvc文件上传 前端 后端 springmvc工作流程详解 image.png 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有...
Spring ResponseEntity 详解:从原理到实践
当返回 ResponseEntity 对象时,Spring MVC 框架处理,通过 HttpEntityMethodProcessor 类进行。此处理过程涉及处理返回值类型为 HttpEntity 或 ResponseEntity 的控制器方法。使用 ResponseEntity 时,需注意其泛型性质,可以使用任何类型作为响应正文。根据情况指定状态码,设置 HTTP 标头,通过 ResponseEntity 的...
Spring Boot教程(10) – 错误处理
当控制器方法在处理请求时发生异常,框架会将请求转发至\/error路径,该路径由BasicErrorController控制器处理。通过修改server.error.path属性,可以自定义错误页面路径。错误处理机制在ErrorMvcAutoConfiguration自动配置类中启动,并在BasicErrorController和DefaultErrorAttributes类中实现。若Spring Boot默认的错误处理...
Spring mvc 拦截器 怎么会进去两次
只要是访问服务器资源都会进的,不管是静态的,还是控制器的,都会进的。可以将URL打出来看看,到底是什么访问的服务器。数据从页面传到后台: jsp--->拦截器--->后台处理 返回---> 拦截器--->jsp
SpringBoot WebMvcConfigurer详解
在Spring Boot 1.5版本都是靠重写 WebMvcConfigurerAdapter 的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐),方式二继承WebMvcConfiguration...
springboot怎么用(springboot怎么用在web上又用在微信小程序上)_百 ...
在服务器这边,我们首先应该创建一个controller来持有我们的处理器方法。我们会使用@MessageMapping注解来代替像SpringMVC中的@RequestMapping或者@GetMapping注解 来研究下我们的控制器。我们将使用@Controller注解来定义一个控制器来处理进入RSocket的请求。另外,注解@MessageMapping让我们定义我们感兴趣的路由和如何响应一个请求...
怎么理解struts spring hibernate,以前用servlet做过项目怎么转化为st...
name="success">\/index.jsp<\/result><\/action>如上xml文件 name属性是你前台里的action请求 class相当于你的servlet类,但是类里面一定要有excute()方法,action是默认执行excute()的 <result>里的name属性就是excute方法的返回值,\/index.jsp表示返回success时跳转到的页面 ...
springboot各层(springboot每层做什么)
SpringMVC是用于处理控制器层开发的,在使用SpringBoot时,在`pom.xml`中添加`spring-boot-starter-web`即可整合SpringMVC框架及相关的常用依赖项(包含`jackson-databind`),可以将已存在的`spring-boot-starter`直接改为`spring-boot-starter-web`,因为在`spring-boot-starter-web`中已经包含了`spring-boot-starter`。