IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring MVC请求参数的绑定 -> 正文阅读

[Java知识库]Spring MVC请求参数的绑定

作者:recommend-item-box-tow

请求参数的绑定说明

1. 绑定机制

①. 表单提交的数据都是k=v格式的 username=haha&password=123

②. SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的

③. 要求:提交表单的name和参数的名称是相同的

2. 支持的数据类型

????????①. 基本数据类型和字符串类型

????????②. 实体类型(JavaBean)

????????③. 集合数据类型(List、map集合等)

????????基本数据类型和字符串类型

????????????????①. 提交表单的name和参数的名称是相同的

????????????????②. 区分大小写

????????实体类型(JavaBean)

????????????????①. 提交表单的name和JavaBean中的属性名称需要一致

????????????????②. 如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name

????????????????给集合属性数据封装

? ? ? ? ? ? ? ? ①. JSP页面编写方式:list[0].属性

index.html代码

<html>
<head>
    <meta charset="utf-8">
    <title>请求参数的绑定</title>
</head>
<body>
    <form action="/SpringMVCDemo/my/sever1.do" method="get">
        <input type="text" name="username">
        <input type="text" name="password">
        <input type="submit" value="get提交">
    </form>
    <form action="/SpringMVCDemo/my/sever2.do" method="post">
        <input type="text" name="username">
        <input type="text" name="password">
        <input type="submit" value="post提交">
    </form>

    <form action="/SpringMVCDemo/my/sever5.do" method="get">
        <input type="text" name="username"/>
        <input type="text" name="password"/>
        <input type="submit" value="封装到实体类提交"/>
    </form>

    <form action="/SpringMVCDemo/my/sever5.do" method="get">
        <input type="text" name="username"/>
        <input type="text" name="password"/>
        <input type="text" name="account.money"/>
        <input type="text" name="car.money"/>
        <input type="submit" value="提交"/>
    </form>

    <form action="/SpringMVCDemo/my/sever5.do" method="get">
        <input type="text" name="username"/>
        <input type="text" name="password"/>
        <input type="text" name="account.money"/>
        <input type="text" name="car.money"/>
        <input type="text" name="accounts[0].money"/>
        <input type="text" name="accounts[1].money"/>
        <input type="text" name="accounts[2].money"/>
        <input type="submit" value="存在list集合提交"/>
    </form>
</body>
</html>

?Account代码

package com.qcby.entity;

public class Account {
    private Double money;

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "Account{" +
                "money=" + money +
                '}';
    }
}

Car代码

package com.qcby.entity;

public class Car {
    private Double money;

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "Car{" +
                "money=" + money +
                '}';
    }
}

User代码

package com.qcby.entity;

import java.util.List;

public class User {
    private String username;
    private String password;
    private Account account;
    private Car car;
    List<Account> accounts;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Account getAccount() {
        return account;
    }

    public void setAccount(Account account) {
        this.account = account;
    }

    public Car getCar() {
        return car;
    }

    public void setCar(Car car) {
        this.car = car;
    }

    public List<Account> getAccounts() {
        return accounts;
    }

    public void setAccounts(List<Account> accounts) {
        this.accounts = accounts;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", account=" + account +
                ", car=" + car +
                ", accounts=" + accounts +
                '}';
    }
}

MyController代码

package com.qcby.Controller;

import com.qcby.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("my")
public class MyController {

    @RequestMapping(path = "/sever1.do",method ={RequestMethod.GET})
    public void save1(String username,String password){
        System.out.println(username);
        System.out.println(password);
    }

    @RequestMapping(path = "/sever2.do",method ={RequestMethod.POST})
    public void save2(String username,String password){
        System.out.println(username);
        System.out.println(password);
    }

    @RequestMapping(path = "/sever3",method ={RequestMethod.GET})
    public void save3(User user){
        System.out.println(user.toString());
    }
    @RequestMapping(path = "/sever4",method ={RequestMethod.GET})
    public void save4(User user){
        System.out.println(user.toString());
    }
    @RequestMapping(path = "/sever5",method ={RequestMethod.GET})
    public void save5(User user){
        System.out.println(user.toString());
    }
}

启动Tomcat,运行测试

post请求中参数中文乱码的解决

在web.xml中配置Spring提供的过滤器类

<!--    配置过滤器,解决中文乱码的问题-->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

在控制器中使用原生的ServletAPI对象

1. 只需要在控制器的方法参数定义HttpServletRequest和HttpServletResponse对象

@RequestMapping("/save6.do")
public String save6(HttpServletRequest request, HttpServletResponse response){
    System.out.println(request);
    // 获取到HttpSession对象
    HttpSession session = request.getSession();
    System.out.println(session);
    System.out.println(response);
    return "suc";
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:26:08  更:2022-02-22 20:28:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:07:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码