Spring MVC 接受表单 自动封装特性

Spring MVC中的Controller可以以实体类接受来自客户端的form表单,表单的字段自动构成实体类对象

客户端的表单

<form action="http://localhost:8080/test/user" method="POST">
        <!-- 每个字段名对应实体类 -->
        <div>
            <input type="text" name="name"/>
        </div>

        <div>
            <input type="number" name="age"/>
        </div>

        <div>
            <input type="text" name="hobby"/>
        </div>

        <input type="submit" value="Submit"/>
</form>

实体类

public class User {
    private String name;
    private Integer age;
    private String hobby;

    public User() {
        this.name = "未初始化";
        this.age = 10;
        this.hobby = "coding";
    }

    public User(String name) {
        this.name = name;
        this.age = 10;
        this.hobby = "coding";
    }

    public User(String name, Integer age) {
        this.name = name;
        this.age = age;
        this.hobby = "coding";
    }

    public User(String name, Integer age, String hobby) {
        this.name = name;
        this.age = age;
        this.hobby = hobby;
    }

    public Integer getAge() {
        return age;
    }

    public String getHobby() {
        return hobby;
    }

    public String getName() {
        return name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", hobby='" + hobby + '\'' +
                '}';
    }
}

服务端接收

@Controller
@RequestMapping("/test")
public class TestController {

    @RequestMapping(value = "/user", method = RequestMethod.POST)
    // 控制器会自动实例化参数
    public String user(User user) {
        System.out.println(user);
        return "redirect:/test/user";
    }

    @RequestMapping(value = "/user", method = RequestMethod.GET)
    public String user() {
        return "form";
    }
}

原文地址:https://www.cnblogs.com/esrevinud/p/12253263.html

时间: 2024-12-16 01:50:54

Spring MVC 接受表单 自动封装特性的相关文章

使用Spring MVC 的表单控制器SimpleFormController

以注册过程为例,我们可能会选择继承AbstractController来实现表单的显示,继承AbstractCommandController来实现表单的处理 ,这样是可行的,但必须要维护两个控制器 在这种情况下,我们应该使用SimpleFormController,他接受GET请求时显示表单,接受POST请求时处理表单,如果发生错误,控制器会知道重新显示这个表单,这样用户就可以修改错误,重新提交. 表单对应的POJO package com.dxz.validator.demo1.mode;

spring mvc form表单提交乱码

spring mvc form表单submit直接提交出现乱码.导致乱码一般是服务器端和页面之间编码不一致造成的.根据这一思路可以依次可以有以下方案. 1.jsp页面设置编码 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><meta http-equiv="Content-Type"

Spring MVC与表单日期提交的问题

Spring MVC与表单日期提交的问题 spring mvc 本身并不提供日期类型的解析器,需要手工绑定, 否则会出现非法参数异常. org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.Date]: Constructor threw exception; nested exception is java.lang.IllegalArgumentExc

spring mvc 接收表单 bean

spring MVC如何接收表单bean 呢? 之前项目中MVC框架一直用struts2,所以我也就按照struts2 的思维来思考 页面loginInput.jsp: Html代码   <?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnco

Spring MVC 3 表单中文提交后乱码问题的解决方法

在spring mvc 3.0 框架中,通过JSP页面.HTML页面以POST方式提交表单时,表单的参数传递到对应的servlet后会出现中文显示乱码的问题.解决办法可采用spring自带的过滤技术,对所有页面间参数的传递设置统一的字符编码. 分两步解决问题: 1.设置页面格式为UTF-8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2.在web.xml中添加

spring mvc 接收表单数据

---恢复内容开始--- 一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/T

Spring MVC —— form表单post提交出现乱码

主要原因是:页面提交时,使用<contentType:utf-8/>格式,而服务端HttpMessageConverter解码时使用其它格式解码(如:ISO-8859-1)导致 解决方案:在Servlet中设置CharacterEncoding为UTF-8格式. 方法一:在Web.xml中加入Spring的字符集过滤器(已测) <filter> <filter-name>CharacterEncodingFilter</filter-name> <fi

使用jquery将表单自动封装成json对象 /json对象元素的添加删除和转换

$.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.v

spring mvc 提交表单汉字乱码

修改web.xml添加如下信息 <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name>