springboot 之 在Controller如何接收参数呢?
下文笔者将讲述Controller中接收url路径中的参数、表单、问号后面参数、body中的JSON信息
使用@PathVariable 直接使用String定义变量 使用HttpServletRequest接收request对象,然后获取其中的变量 使用requestbody注解获取json内容 使用model接收参数信息例:
package com.java265.controller; import com.java265.domain.User; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.list; @RestController public class ControllerTest3 { //----------------------方法1、获取路径中的值---------------------------- /** * URL:http://localhost:8081/addUser0/zhangsan * * @param username * @return */ @GetMapping("/addUser0/{username}") public String addUser0(@PathVariable String username) { System.out.println("username : " + username); return "success"; } //----------------------方法2、获取路径中的参数---------------------------- /** * URL:http://localhost:8081/addUser1?username=zhangsan * * @param username * @return */ @GetMapping("/addUser1") public String addUser1(String username) { System.out.println("username : " + username); return "success"; } //----------------------方法3、通过bean接收HTTP提交的对象---------------------------- /** * URL:http://localhost:8081/addUser2?username=zhangsan&age=88 * * @param user * @return */ @GetMapping("/addUser2") public String addUser2(User user) { System.out.println("user ... " + user); return "success"; } //----------------------方法4、通过HttpServletRequest接收参数---------------------------- /** * URL:http://localhost:8081/addUser3?username=zhangsan * * @param request * @return */ @GetMapping("/addUser3") public String addUser3(HttpServletRequest request) { System.out.println("username ... " + request.getParameter("username")); return "success3"; } //----------------------方法5、用@RequestParam绑定入参---------------------------- /** * 通过@RequestParam注解绑定入参 * URL:http://localhost:8081/addUser1?username=zhangsan * * @param username * @return */ @GetMapping("/addUser4") public String addUser4(@RequestParam String username) { System.out.println("username : " + username); return "success4"; } //----------------------方法6、用@RequestBody接收JSON数据---------------------------- /** * URL:http://localhost:8081/addUser5 * BODY: * [ * { * "username": "zhangsan", * "age": "26" * }, * { * "username": "lisi", * "age": "18" * } * ] * <p> * 通过@RequestBody接收JSON入参,同时需要设置http的header中Content-Type属性值为[application/json;charset=UTF-8] * * @param userList * @return */ @PostMapping("/addUser5") public String addUser5(@RequestBody List<User> userList) { System.out.println("userList : " + userList); return "success5"; } //----------------------方法7、用@ModelAttribute注解获取参数---------------------------- /** * URL:http://localhost:8081/addUser6?username=zhangsan&age=18 * <p> * 通过@ModelAttribute注解,从Model、Form或者URL请求参数中获取属性值,上面的URL演示从URL参数中取值 * * @param user * @return */ @PostMapping("/addUser6") public String addUser6(@ModelAttribute("user") User user) { System.out.println("user ... " + user); return "success6"; } /** * URL:http://localhost:8081/addUser7 * <p> * 通过@ModelAttribute注解,从Model、Form或者URL请求参数中获取属性值,上面的URL演示从Model中取值 * * @param user * @return */ @PostMapping("/addUser7") public String addUser7(@ModelAttribute("user") User user) { System.out.println("user7 ... " + user); return "success7"; } //Get获取参数信息 @ModelAttribute("user") public User addAccount() { return new User("zhangsan",8888); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。