springmvc前端传参,后端接收

RequestMapping注解

复制代码
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String name() default "";
 
    @AliasFor("path")
    String[] value() default {};
 
    @AliasFor("value")
    String[] path() default {};
 
    RequestMethod[] method() default {};
 
    String[] params() default {};
 
    String[] headers() default {};
 
    String[] consumes() default {};
 
    String[] produces() default {};
}

作用: 建立请求URL和处理方法之间的对应关系 出现位置:方法和类上 作用在类上:第一季访问目录 作用在方法上:第二级访问目录 注意:路径可以不写 / 表示应用的根目录开始 属性: path:指定请求的url value:value属性和path属性一样 mthod:指定该方法的请求方式 params:指定限制请求参数条件 headers:发送请求中必须包含的请求头

请求参数的绑定

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

  • 实体类(javabean)

  • 集合数据类型(list、map集合等)

  • 以传递用户名和密码为例,修改index.jsp页面,添加绑定参数
复制代码
<html>
<body>
<h2>Hello World!</h2>
<h1>Login</h1>
<a href="/param?username=oneStar&password=123">login</a>
</body>
</html>
在控制层添加请求映射,以参数的形式进行传递
复制代码
    @RequestMapping(path = "/param")
    public String user(@RequestParam("username") String username,@RequestParam("password") String password){
        System.out.println(username);
        System.out.println(password);
        return "success";
    }
实体类绑定参数
  • 创建实体类
复制代码
package com.pyb.pojo;
​
/**
 * @version 1.0
 * @Author 彭彦彬
 * @Date 2025/1/9 21:01
 * @注释
 */
public class User {
    private String username;
    private String password;
​
    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
​
    public User() {
    }
​
    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;
    }
​
    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
​
  • 修改index.jsp页面
复制代码
<html>
<body>
<h1>Pojo</h1>
<form action="/saveUser" method="post">
    username<input type="text" name="username"/><br>
    password<input type="text" name="password"/><br>
    <input type="submit" value="Button"/><br>
</form>
</body>
</html>
​
  • 在控制层添加请求映射
复制代码
  @RequestMapping("/saveUser")
    public String saveUser(User user) {
        System.out.println(user);
        return "success";
    }
  • 运行后在页面上输入用户名和密码点击提交即可将数据传递给服务器

  • 集合绑定参数

为了方便将数据绑定到List集合和Map集合,这里设置两个用户名和密码,一个用List集合绑定,一个用Map集合绑定

  • 修改index.jsp页面
复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Collection Binding Parameters</title>
</head>
<body>
<h1>Collection and Map Binding Parameters</h1>
<form action="/mapUser" method="post">
    User: <input type="text" name="list[0].username"/><br>
    Password: <input type="password" name="list[0].password"/><br>
    User: <input type="text" name="map['one'].username"/><br>
    Password: <input type="password" name="map['one'].password"/><br>
    <input type="submit" value="Submit"/><br>
</form>
</body>
</html>
  • 编写集合实体类
复制代码
package com.pyb.pojo;
import java.util.List;
import java.util.Map;
/**
 * @version 1.0
 * @Author 彭彦彬
 * @Date 2025/1/9 21:13
 * @注释
 */
public class mapUser {
    private String username;
    private String password;
​
    List<mapUser> list;
    Map<String,mapUser> map;
​
    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 List<mapUser> getList() {
        return list;
    }
​
    public void setList(List<mapUser> list) {
        this.list = list;
    }
​
    public Map<String, mapUser> getMap() {
        return map;
    }
​
    public void setMap(Map<String, mapUser> map) {
        this.map = map;
    }
​
    @Override
    public String toString() {
        return "mapUser{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", list=" + list +
                ", map=" + map +
                '}';
    }
}
  • 在控制层添加请求映射
复制代码
    @RequestMapping(path="/mapUser")     //请求映射
    public String mapUser(mapUser mapuser){
        System.out.println(mapuser);
        return "success";
    }
  • 运行后在页面上输入用户名和密码点击提交即可将数据以集合形式传递给服务器

解决中文乱码

在绑定参数的时候,当有中文时会出现乱码,而SpringMVC提供了解决方法,在web.xml添加过滤器进行配置即可

相关推荐
楠木6854 分钟前
RAG 资料库 Demo 完整开发流程
前端·ai编程
有一个好名字12 分钟前
vibe codeing 开发流程
java
肠胃炎15 分钟前
挂载方式部署项目
服务器·前端·nginx
兑生18 分钟前
【灵神题单·贪心】3745. 三元素表达式的最大值 | 排序贪心 | Java
java·开发语言
polaris063023 分钟前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
像我这样帅的人丶你还24 分钟前
使用 Next.js + Prisma + MySQL 开发全栈项目
前端
FPGA小迷弟24 分钟前
FPGA 时序约束基础:从时钟定义到输入输出延迟的完整设置
前端·学习·fpga开发·verilog·fpga
卓怡学长38 分钟前
m280本科生导师指导平台
java·数据库·spring·tomcat·maven·intellij-idea
毛骗导演43 分钟前
@tencent-weixin/openclaw-weixin 插件深度解析(四):API 协议与数据流设计
前端·架构
毛骗导演1 小时前
@tencent-weixin/openclaw-weixin 插件深度解析(二):消息处理系统架构
前端·架构