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添加过滤器进行配置即可

相关推荐
上海合宙LuatOS17 分钟前
全栈工程师实战手册:LuatOS日志系统开发指南!
java·开发语言·单片机·嵌入式硬件·物联网·php·硬件工程
多敲代码防脱发18 分钟前
导出导入Excel文件(详解-基于EasyExcel)
java·开发语言·jvm·数据库·mysql·excel
一刀到底21128 分钟前
做为一个平台,给第三方提供接口的时候,除了要求让他们申请 appId 和 AppSecret 之外,还应当有哪些安全选项,要过等保3级
java·网络·安全
进取星辰31 分钟前
25、Tailwind:魔法速记术——React 19 样式新思路
前端·react.js·前端框架
wjcurry1 小时前
我的实习日报
java·redis·mysql
x-cmd1 小时前
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
前端·javascript·windows·npm·node.js
夏之小星星2 小时前
el-tree结合checkbox实现数据回显
前端·javascript·vue.js
我喜欢山,也喜欢海2 小时前
Jenkins Maven 带权限 搭建方案2025
java·jenkins·maven
明天更新2 小时前
Java处理压缩文件的两种方式!!!!
java·开发语言·7-zip