【Spring】— Spring MVC简单数据绑定(二)

接上文:【Spring】— Spring MVC简单数据绑定(一)

2.3绑定POJO类型

在使用简单数据类型绑定时,可以很容易地根据具体需求来定义方法中的形参类型和个数,然而在实际应用中,客户端请求可能会传递多个不同类型的参数数据,如果还使用简单数据类型进行绑定,就需要手动编写多个不同类型的参数,这种操作显然比较烦琐。此时就可以使用POJO类型进行数据绑定。

POJO类型的数据绑定就是将所有关联的请求参数封装在一个POJO中,然后在方法中直接使用该POJO作为形参来完成数据绑定。

【示例】接下来通过一个用户注册案例来演示POJO类型数据的绑定,具体实现步骤如下。

步骤01 在src目录下创建一个com.ssm.po包,在该包下创建一个User类来封装用户注册的信息参数。

package com.ssm.po;
//用户类User
public class User {
    
    
    private Integer id;
    private String username;
    private String password;
    
    public Integer getId() {
    
    
        return id;
    }
    public void setId(Integer id) {
    
    
        this.id=id;
    }
    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;
    }

}

步骤02 在控制器 UserController类中编写向注册页面跳转和接收用户注册信息的方法,代码如下所示。

  //向注册页面跳转
    @RequestMapping("/toRegister")
    public String toRegister() {
    
    
        return "register";
    }

    //接受用户注册信息
    @RequestMapping("registerUser")
    public String registerUser(User user) {
    
    
        String username = user.getUsername();
        String password = user.getPassword();
        System.out.println("username" + username);
        System.out.println("password" + password);
        return "success";
    }

步骤03 在WEB-INF目录下创建一个用户注册页面register.jsp,在该界面中编写用户注册表单,表单需要以POST方式提交,并且在提交时会发送一条以“registerUser”结尾的请求消息,如文件12.6所示。

在这里插入图片描述

注意
在使用POJO类型数据绑定时,前端请求的参数名(本例中指form表单内各元素的name属性值)必须与要绑定的POJO类中的属性名一样,这样才会自动将请求数据绑定到POJO对象中,否则后台接收的参数值为null。

步骤04 发布并启动项目,在浏览器中访问地址http://localhost:8080/chapter12/toRegister,就会跳转到用户注册页面register.jsp。

在这里插入图片描述

填写对应的用户名和密码,然后单击“注册”按钮即可完成模拟注册功能。这里假设用户注册的用户名和密码分别为“jack”和“jack_123”,当单击“注册”按钮后,浏览器会跳转到结果页面。

使用POJO类型同样可以获取前端请求传递过来的数据信息,这就是POJO类型的数据绑定。

注意

在前端请求中,难免会有中文信息传递,用户名和密码输入框中输入用户名“张三”和密码“123”时,虽然浏览器可以正确跳转到结果页面,但是在控制台中输出的中文信息会出现乱码。为了防止前端传入的中文数据出现乱码问题,可以使用Spring提供的编码过滤器来统一编码。要使用编码过滤器,只需要在web.xml中添加如下代码。

在这里插入图片描述

上述代码中,通过<filter-mapping>元素的配置会拦截前端页面中的所有请求,并交由名称为CharacterEncodingFilter的编码过滤器类进行处理。在<filter>元素中,首先配置了编码过滤器类org.springframework.web.filter.CharacterEncodingFilter,然后通过初始化参数设置统一的编码为UTF-8。这样所有的请求信息都会以UTF-8的编码格式进行解析。

猜你喜欢

转载自blog.csdn.net/weixin_45627039/article/details/131372899