设置请求映射路径
可以在类外面使用请求路径,内部设置功能名,来减少书写
@Controller
//类上方配置的请求映射与方法上面配置的请求映射连接在一起,形成完整的请求映射路径
@RequestMapping("/user")
public class UserController {
//请求路径映射
@RequestMapping("/save")
@ResponseBody
public String save() {
System.out.println("user save ...");
return "{'module':'user save'}";
}
//请求路径映射
@RequestMapping("/delete")
@ResponseBody
public String delete() {
System.out.println("user delete ...");
return "{'module':'user delete'}";
}
}
乱码处理
我们在容器初始化的配置类里面加上这么段即可
//乱码处理
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
maven构建不成功
需要在pom.xml里面配置如下编译jdk版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
Get请求
我们模拟发送2个参数的请求给后端
然后后端这么写:
发送一下,发现成功了
POST请求
由于我们的springmvc不需要区分get与post,因此我们后台代码不需要改,在apipost里面改成post请求和设置参数即可
几种参数类型传递
@RequestParam
是把请求参数中的参数名给到controller里面的形参
1 实体类类型传参
很简单,只要保证在controller上面参数内写的是实体类类型即可使用
2 两个实体类,其中一个实体类内调用了另一个实体类
现在user里面调用了address
而address里面是这样的
我们需要的请求就应该这样:使用.
号来区分
3 数组传递
4 集合传递
由于我们需要先造个对象才能传入参数,所以在集合传递时如果贸然的用List<String>
会报错,springmvc想尝试造一个集合对象(当作pojo对象),而我们是想让外面请求的参数放到这个list里,因此,我们使用@RequestParam
来把参数扔进去
5 json转List集合
首先,我们需要一个json的转换插件,不然,json数据传过来了我们还不能处理
pom.xml里面导坐标
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
然后需要在springmvc配置类里面写上@EnableWebMvc
来开启springmvc处理json格式的数据
我们由于是在body里面写json的,所以我们需要在controller里面开启@RequestBody
6 json转实体类
和上面一样
但是发送的json格式要换:
7 json转多个实体类的集合
8 日期类型
注意:/
还是-
需要和controller匹配
注意
响应
响应页面
使用String
,返回值为页面全名
即可