返回

轻轻松松学会SpringMVC参数获取的三种方式,新手也能一看就懂!

后端

1. 获取基本类型参数

基本类型参数是指那些Java语言中的基本类型,如int、float、double等。SpringMVC可以通过以下方式获取基本类型参数:

  • 通过@RequestParam注解
@RequestMapping("/hello")
public String hello(@RequestParam("name") String name) {
    return "hello " + name;
}

在上面的代码中,@RequestParam注解用于将请求参数"name"映射到hello()方法的name参数。

  • 通过HttpServletRequest
@RequestMapping("/hello")
public String hello(HttpServletRequest request) {
    String name = request.getParameter("name");
    return "hello " + name;
}

在上面的代码中,我们可以通过HttpServletRequest对象来获取请求参数。

2. 获取POJO类型参数

POJO类型参数是指那些Java语言中的普通Java对象(POJO)。SpringMVC可以通过以下方式获取POJO类型参数:

  • 通过@RequestBody注解
@RequestMapping("/hello")
public String hello(@RequestBody User user) {
    return "hello " + user.getName();
}

在上面的代码中,@RequestBody注解用于将请求体中的JSON数据映射到hello()方法的user参数。

  • 通过HttpEntity
@RequestMapping("/hello")
public String hello(HttpEntity<User> httpEntity) {
    User user = httpEntity.getBody();
    return "hello " + user.getName();
}

在上面的代码中,我们可以通过HttpEntity对象来获取请求体中的JSON数据。

3. 获取流参数

流参数是指那些可以通过流来获取的数据,如文件上传、视频流等。SpringMVC可以通过以下方式获取流参数:

  • 通过MultipartFile
@RequestMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
    // 保存文件
    file.transferTo(new File("/tmp/" + file.getOriginalFilename()));
    return "文件上传成功";
}

在上面的代码中,MultipartFile对象用于获取文件上传的数据。

  • 通过InputStream
@RequestMapping("/video")
public String video(@RequestParam("video") InputStream video) {
    // 保存视频
    FileUtils.copyInputStreamToFile(video, new File("/tmp/video.mp4"));
    return "视频上传成功";
}

在上面的代码中,我们可以通过InputStream对象来获取视频流数据。

总结

SpringMVC提供了多种方式来获取请求数据,包括基本类型参数、POJO类型参数和流参数。这些方式可以满足不同的应用场景,我们可以根据自己的需要来选择合适的方式。