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

相关推荐
程序员谷美2 分钟前
Redis 性能优化:利用 MGET 和 Pipeline 提升效率
java·redis·性能优化
Heavydrink17 分钟前
JSP内置对象、Servlet与MVC
java·servlet·mvc
雨 子30 分钟前
Spring Web MVC
前端·spring boot·spring·mvc·postman
Lucky_Turtle30 分钟前
【SpringSecurity】二、自定义页面前后端分离
java
雨 子32 分钟前
SpringBoot环境和Maven配置
java·spring boot·后端·java-ee·maven
zyplanke32 分钟前
Spring配置文件中:密码明文改为密文处理方式(通用方法)
java·后端·spring
暮湫35 分钟前
集合源码的常见问题
java
计算机毕设指导636 分钟前
基于Springboot的景区民宿预约系统【附源码】
java·开发语言·spring boot·后端·mysql·spring·intellij idea
计算机毕设指导639 分钟前
基于Springboot美食推荐商城系统【附源码】
java·前端·spring boot·后端·spring·tomcat·美食
web1508509664139 分钟前
程序包org.springframework.boot不存在
java·spring boot·spring