微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring学习日记(六)

SpringMVC获得请求数据

1、获得请求参数

客户端请求的格式:name=value&name=value…

SpringMVC可以接受以下类型的参数

⚪基本类型参数

⚪POJO类型参数

⚪数组类型参数

⚪集合类型参数

2、获得基本类型参数

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动地映射匹配。

http://localhost:8080/test/quick?name=zhangsan&age=12
 @RequestMapping("/quick11")
    @ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
    //期望springmvc自动将user转换成json格式的字符串

    public void save11(String username,int age)  throws IOException {
        System.out.println(username);
        System.out.println(age);
    }

3、获得一个POJO类型参数

http://localhost:8080/user/quick12?username=wangwu&age=30
 @RequestMapping("/quick12")
    @ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
    //期望springmvc自动将user转换成json格式的字符串

    public void save12(User user)  throws IOException {
        System.out.println(user.toString());
    }

4、获取数组类型的参数

http://localhost:8080/user/quick13?strs=111&strs=222&strs=333
@RequestMapping("/quick13")
    @ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
    //期望springmvc自动将user转换成json格式的字符串

    public void save13(String[] strs)  throws IOException {
        System.out.println(Arrays.asList(strs));
    }

5、获得集合类型参数

5.1、POJO方式

获得集合参数时,要将集合参数包装到一个POJO中才可以。

新建一个类初始化List

package com.qw.domain;

import java.util.List;

/**
 * @author QBS @win10
 * @version 1.0
 * @date 2021/5/17 20:12
 * 类说明
 */
public class VO {
    private List<User> userList;

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

    @Override
    public String toString() {
        return "VO{" +
                "userList=" + userList +
                '}';
    }
}

编写相关jsp界面发送包含集合的请求

<%--
  Created by IntelliJ IDEA.
  User: SomeoneEighty
  Date: 2021/5/17
  Time: 20:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="${pageContext.request.contextpath}/user/quick14" method="post">
        <input type="text" name="userList[0].username"><br/>
        <input type="text" name="userList[0].age"><br/>
        <input type="text" name="userList[1].username"><br/>
        <input type="text" name="userList[1].age"><br/>
        <input type="submit"value="提交">
    </form>
</body>
</html>

编写测试类

    @RequestMapping("/quick14")
    @ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
    //期望springmvc自动将user转换成json格式的字符串

    public void save14(VO vo)  throws IOException {
        System.out.println(vo);
    }

测试

image-20210517202530275

结果

image-20210517202542968

当使用ajax提交时,可以指定contentType为json形式,那么在方法参数位置使用@RequestBoby可以直接接受集合而无需使用POJO进行包装。

5.2、注解方式

ajax.jsp编写模拟发送请求

http://localhost:8080/ajax.jsp

!!注意这里的jquery是字节跳动源,非本地js文件,如果使用本地js文件需要配置springmvc-config

    <mvc:resources mapping="/js/**" location="/js/"/>
<%--
  Created by IntelliJ IDEA.
  User: SomeoneEighty
  Date: 2021/5/17
  Time: 22:33
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.js"></script>
    <script>
        var userList = new Array();
        userList.push({username:"zhangsan",age:18})
        userList.push({username:"lisi",age:20})

        $.ajax({
            type:"POST",
            url:"${pageContext.request.contextpath}/user/quick15",
            data:JSON.stringify(userList),
            contentType:"application/json;charset=utf-8"
        })
    </script>
</head>
<body>

</body>
</html>

编写测试类

    @RequestMapping("/quick15")
    @ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
    //
    public void save15(@RequestBody List<User> userList)  throws IOException {
        System.out.println(userList.toString());
    }

image-20210517233147589

控制台输出结果

image-20210517233206447

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐