您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 |

自学教程:SpringMVC和SpringBoot接收参数的几种方式详解

51自学网 2023-07-22 10:36:23
  python
这篇教程SpringMVC和SpringBoot接收参数的几种方式详解写得很实用,希望能帮到您。

SpringMVC、SpringBoot接收参数

SpringMVC和SpringBoot接收参数的方式是一样一样的。

一、传非json参数

下面代码是get、post请求都支持,不过我们是把参数放到路径上,一半这种情况下都用get请求。

涉及到的注解:

  • @RequestParam主要用于在SpringMVC后台控制层获取参数,它有三个常用参数:defaultValue = “0”, required = false, value = “xxx”;defaultValue 表示设置默认值,required 表示该参数是否必传,value 值表示接受的传入的参数的key。
  • @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
    /**     * http://localhost:80/add?username=zg&password=123456     * get post都支持,一半路径传参都用get请求     * @param username     * @param password     */    @RequestMapping(value = "/add")    public void add(String username, String password) {        log.info("打印参数:{}--{}", username, password);    }    /**     * http://localhost:80/add2?username=zg&password=123456     * get post都支持,一半路径传参都用get请求     * @param username     * @param password     * @return     */    @RequestMapping(value = "/add2", name = "haha")    public void add2(@RequestParam(value = "username") String username, @RequestParam("password") String password) {        log.info("打印参数:{}--{}", username, password);    }    /**     * http://localhost:80/add3?username=zg&password=123456     * get post都支持,一半路径传参都用get请求     * @return     */    @RequestMapping(value = "/add3")    public void add3(User user) {        log.info("打印参数:{}--{}", user.getUserName(), user.getPassword());    }    /**     * http://localhost:80/add4/zg/123456     * get post都支持,一半路径传参都用get请求     * @param username     * @param password     */    @RequestMapping(value = "/add4/{username}/{password}")    public void add4(@PathVariable String username, @PathVariable String password) {        log.info("打印参数:{}--{}", username, password);    }    /**     * http://localhost:80/add5?username=zg&password=123456     * get post都支持,一半路径传参都用get请求     * @param request     */    @RequestMapping(value = "/add5")    public void add5(HttpServletRequest request) {        String username = request.getParameter("username");        String password = request.getParameter("password");        log.info("打印参数:{}--{}", username, password);    }

二、传json参数

1、单个实体接收参数

    /**     * http://localhost/toUser/add6     * body: {"username":"张刚","password":"123456"}     * get post都可以     *     * @param user     * @return     */    @RequestMapping(value = "/add6")    public void add6(@RequestBody User user) {        log.info("打印参数:{}--{}", user.getUserName(), user.getPassword());    }

2、实体嵌套实体接收参数

注解:

  • @RequestBody:该注解会把接收到的参数转为json格式

实体

@Data@ToStringpublic class People {    private Integer count;    private String peoplename;    private Student student;}@Data@ToStringpublic class Student {    private String studentname;}
    /**     * http://localhost:80/add7     * body: {"peoplename":"张刚","student":{"studentname":"你好"}}     * get post都可以, body传参一般都用post     * @param     */    @RequestMapping(value = "/add7")    public void add7(@RequestBody People people) {        log.info("打印参数:{}--{}", people.getPeoplename(), people.getStudent().getStudentname());    }

3、实体嵌套List接收参数

实体

@Data@ToStringpublic class People {    private Integer count;    private String peoplename;    private List<Student> student;}@Data@ToStringpublic class Student {    private String studentname;}
    /**     * http://localhost:80/add8     * body: {"peoplename":"张刚","student":[{"studentname":"你好"},{"studentname":"很好"}]}     * get post都可以, body传参一般都用post     * @param     */    @RequestMapping(value = "/add8")    public void add8(@RequestBody People people) {        List<Student> student = people.getStudent();        student.stream().forEach(System.out::println);        log.info("打印参数:{}--{}", people.getPeoplename());    }

4、Map接收参数

  /**     * http://localhost:80/add9     * body: {"peoplename":"张刚","student":[{"studentname":"你好"},{"studentname":"很好"}]}     * get post都可以, body传参一般都用post     *     * @param     */    @RequestMapping(value = "/add9")    public void add7(@RequestBody Map<String, Object> map) {        log.info(map.get("peoplename").toString());        List<Map<String, Object>> studentMapList = (List<Map<String, Object>>) map.get("student");        studentMapList.stream().forEach(System.out::println);    }

到此这篇关于SpringMVC和SpringBoot接收参数的几种方式详解的文章就介绍到这了,更多相关Spring 接收参数的方式内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


Python
Python&nbsp;中如何使用&nbsp;setLevel()&nbsp;设置日志级别
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1