可以在类外面使用请求路径,内部设置功能名,来减少书写
@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};
}
需要在pom.xml里面配置如下编译jdk版本
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>8maven.compiler.source>
<maven.compiler.target>8maven.compiler.target>
properties>
我们模拟发送2个参数的请求给后端

然后后端这么写:

发送一下,发现成功了

由于我们的springmvc不需要区分get与post,因此我们后台代码不需要改,在apipost里面改成post请求和设置参数即可



@RequestParam是把请求参数中的参数名给到controller里面的形参
很简单,只要保证在controller上面参数内写的是实体类类型即可使用

现在user里面调用了address

而address里面是这样的

我们需要的请求就应该这样:使用.号来区分





由于我们需要先造个对象才能传入参数,所以在集合传递时如果贸然的用List会报错,springmvc想尝试造一个集合对象(当作pojo对象),而我们是想让外面请求的参数放到这个list里,因此,我们使用@RequestParam来把参数扔进去



首先,我们需要一个json的转换插件,不然,json数据传过来了我们还不能处理
pom.xml里面导坐标
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-databindartifactId>
<version>2.9.0version>
dependency>
然后需要在springmvc配置类里面写上@EnableWebMvc来开启springmvc处理json格式的数据
我们由于是在body里面写json的,所以我们需要在controller里面开启@RequestBody


和上面一样

但是发送的json格式要换:





注意:/还是-需要和controller匹配





使用String,返回值为页面全名即可



