一篇文章带你掌握主流服务层框架——SpringMVC( 九 )

Postman操作:

一篇文章带你掌握主流服务层框架——SpringMVC

文章插图

一篇文章带你掌握主流服务层框架——SpringMVC

文章插图

一篇文章带你掌握主流服务层框架——SpringMVC

文章插图
在上面我们有两个注解需要特别注意一下:
  1. @EnableWebMvc
  • 名称:@EnableWebMvc
  • 类型:配置类注解
  • 位置:SpringMVC配置类定义上方
  • 作用:开启SpringMVC多项辅助功能
  1. @RequestBody
  • 名称:@RequestBody
  • 类型:形参注解
  • 位置:SpringMVC控制器方法形参定义前面
  • 作用:将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次
@RequestBody和@RequestParam区别
  • 区别
    • @RequestParam用于接收url地址传参,表单传参[application/x-www-form-urlencoded]
    • @RequestBody用于接收JSON数据[application/json]
  • 应用
    • 后期开发中,发送json数据为主,@RequestBody应用较广
    • 如果发送非json格式数据,选用@RequestParam接收请求参数
日期型参数类型我们的日期类型数据基于系统不同格式也不相同,大致有以下几种:
  • 2022-10-05
  • 2022/10/05
  • 10/05/2022
接收形参时,我们根据不同的日期格式设置不同的接收方式
package com.itheima.controller;import com.itheima.domain.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.Arrays;import java.util.Date;import java.util.List;//请求参数@Controllerpublic class UserController {//日期参数//使用@DateTimeFormat注解设置日期类型数据格式,默认格式yyyy/MM/dd@RequestMapping("/dataParam")@ResponseBodypublic String dataParam(Date date,@DateTimeFormat(pattern="yyyy-MM-dd") Date date1,@DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date2){System.out.println("参数传递 date ==> "+date);System.out.println("参数传递 date1(yyyy-MM-dd) ==> "+date1);System.out.println("参数传递 date2(yyyy/MM/dd HH:mm:ss) ==> "+date2);return "{'module':'data param'}";}}/*名称:@DateTimeFormat类型:形参注解位置:SpringMVC控制器方法前作用:设定日期时间型数据格式属性:pattern:日期时间格式字符串*/Postman操作:
一篇文章带你掌握主流服务层框架——SpringMVC

文章插图
这里我们简单介绍一下@DateTimeFormat的转换原理Converter接口:
public interface Converter<S,T>{ @NullableT convert(S var1)}Converter接口属于顶层接口,由它为起源创建了许多相关的接口与类用于各种转化:
  • 请求参数年龄数据(String->Integer)
  • 日期格式转发(String->Date)
@EnableWebMvc功能之一:根据类型匹配对应的类型转换器
设置响应在了解请求的相关知识之后,我们回到Controller代码中学习一下响应
跳转响应在正常情况下,我们的响应给出的是当前项目的文档,相当于页面的跳转效应:
package com.itheima.controller;import com.itheima.domain.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import java.util.ArrayList;import java.util.Date;import java.util.List;@Controllerpublic class UserController {//响应页面/跳转页面//返回值为String类型,设置返回值为页面名称,即可实现页面跳转@RequestMapping("/toJumpPage")public String toJumpPage(){System.out.println("跳转页面");return "page.jsp";}}

经验总结扩展阅读