SpringMVC框架——数据绑定
Spring MVC 数据绑定
- 使用POJO绑定参数
entity
package com.sunjian.entity;
/**
* @author sunjian
* @date 2020/3/17 14:25
*/
public class User {
private Integer id;
private String name;
private Integer age;
private Address address;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
package com.sunjian.entity;
/**
* @author sunjian
* @date 2020/3/17 14:26
*/
public class Address {
private Integer id;
private String name;
@Override
public String toString() {
return "Address{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
controller
package com.sunjian.controller;
import com.sunjian.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author sunjian
* @date 2020/3/17 14:28
*/
@Controller
@RequestMapping(value = "/user")
public class UserHandler {
@RequestMapping(value = "/add")
public String add(User user){
System.out.println(user);
return "index";
}
}
JSP
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="/user/add" method="post">
ID:<input type="text" name="id"/><br/>
姓名:<input type="text" name="name"/><br/>
年龄:<input type="text" name="age"/><br/>
地址ID:<input type="text" name="address.id"/><br/>
地址名:<input type="text" name="address.name"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
访问http://localhost:7777/add.jsp,输入人员信息后,点击提交按钮,打印结果
User{id=123, name='张三', age=31, address=Address{id=1234, name='12345'}}
- 基本数据类型
- controller
package com.sunjian.controller;
import com.sunjian.entity.User;
import com.sunjian.entity.UserList;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author sunjian
* @date 2020/3/17 14:28
*/
@Controller
@RequestMapping(value = "/user")
public class UserHandler {
@RequestMapping(value = "/int/{num}")
@ResponseBody
public String intTest(@PathVariable int num){
return "num: " + num;
}
}
- 访问http://localhost:7777/user/int/7

- 包装类
- controller
package com.sunjian.controller;
import com.sunjian.entity.User;
import com.sunjian.entity.UserList;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author sunjian
* @date 2020/3/17 14:28
*/
@Controller
@RequestMapping(value = "/user")
public class UserHandler {
@RequestMapping(value = "/package")
@ResponseBody
public String packageTest(Integer num){
return "num: " + num;
}
}
- 访问http://localhost:7777/user/package?num=7

- 数组
- controller
package com.sunjian.controller;
import com.sunjian.entity.User;
import com.sunjian.entity.UserList;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author sunjian
* @date 2020/3/17 14:28
*/
@Controller
@RequestMapping(value = "/user")
public class UserHandler {
@RequestMapping(value = "/arrayUser")
@ResponseBody
public String arrayUser(@RequestBody String[] names){
for(String s:names){
System.out.print(s + " ");
}
return names.toString();
}
}
- JSP
<!DOCTYPE html>
<html lang="en">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<head>
<title>Title</title>
</head>
<body>
<form action="" method="">
<input type="text" class="input1">
<input type="text" class="input2">
<input type="text" class="input3">
<input type="submit" id="submit" value="上传"/>
<script src="./js/jquery-1.8.3.min.js"></script>
<script>
$(function () {
$("#submit").on("click", function () {
var input1 = $(".input1").val();
var input2 = $(".input2").val();
var input3 = $(".input3").val();
var array = [input1, input2, input3];
$.ajax({
type : 'POST',
url: '/user/arrayUser',
contentType : "application/json" ,
data : JSON.stringify(array),
success : function(data) {
alert("ok");
}
});
})
})
</script>
</form>
</body>
</html>
- 访问http://localhost:7777/arrayUser.jsp,输入信息后点击“提交”按钮,打印
张三 李四 赵六
- List
entity
package com.sunjian.entity;
/**
* @author sunjian
* @date 2020/3/17 14:25
*/
public class User {
private Integer id;
private String name;
private Integer age;
private Address address;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
package com.sunjian.entity;
import java.util.List;
/**
* @author sunjian
* @date 2020/3/17 16:21
*/
public class UserList {
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
controller
package com.sunjian.controller;
import com.sunjian.entity.User;
import com.sunjian.entity.UserList;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author sunjian
* @date 2020/3/17 14:28
*/
@Controller
@RequestMapping(value = "/user")
public class UserHandler {
@RequestMapping(value = "/listUser")
@ResponseBody
public String listUser(UserList userList){
for(User user:userList.getUsers()){
System.out.println(user);
}
return "ok";
}
}
JSP
<!DOCTYPE html>
<html lang="en">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<head>
<title>Title</title>
</head>
<body>
<form action="/user/listUser" method="post">
<input type="text" name="users[0].id"/><br/>
<input type="text" name="users[0].name"/><br/>
<input type="text" name="users[1].id"/><br/>
<input type="text" name="users[1].name"/><br/>
<input type="text" name="users[2].id"/><br/>
<input type="text" name="users[2].name"/><br/>
<input type="submit"/>
</form>
</body>
</html>
访问http://localhost:7777/listUser.jsp,输入姓名后,提交,控制台打印
User{id=1, name='2', age=null, address=null}
User{id=3, name='4', age=null, address=null}
User{id=5, name='6', age=null, address=null}
- Json
pom.xml
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.18</version> </dependency>
springmvc.xml
<!-- 消息转换器 -->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"></bean>
</mvc:message-converters>
</mvc:annotation-driven>
JSP
<!DOCTYPE html>
<html lang="en">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<head>
<title>Title</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function(){
var user = {
"id":1,
"name":"张三"
};
$.ajax({
url:"/data/json",
data:JSON.stringify(user),
type:"POST",
contentType:"application/json;charset=UTF-8",
dataType:"text",
success:function(data){
alert(data);
}
})
});
</script>
</head>
<body>
</body>
</html>
controller
package com.sunjian.controller;
import com.sunjian.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author sunjian
* @date 2020/3/17 15:51
*/
@Controller
public class JsonController {
@RequestMapping(value = "/json")
@ResponseBody
public String json(@RequestBody User user){
System.out.println(user);
return user.toString();
}
}
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--中文乱码处理-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--映射-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- js -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
</web-app>
访问http://localhost:7777/json.jsp,打印
User{id=1, name='张三', age=null, address=null}
OK.
SpringMVC框架——数据绑定的更多相关文章
- SpringMvc框架MockMvc单元测试注解及其原理分析
来源:https://www.yoodb.com/ 首先简单介绍一下Spring,它是一个轻量级开源框架,简单的来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开 ...
- SpringMVC框架02——SpringMVC的Controller详解
1.基于注解的控制器 1.1.@Controller 注解类型 在SpringMVC中使用org.springframework.stereotype.Controller注解类型声明某类的实例是一个 ...
- SpringMVC 的数据绑定
1.数据自动绑定 SpringMVC 框架支持不需要任何数据绑定的注解直接将表单参数绑定到我们的执行方法的参数上. 表单参数:包括 POST 以及 GET 发送过来的参数 就是以内容类型为:encty ...
- SpringMVC框架笔记01_SpringMVC的使用案例和架构组件_SpringMVC和Mybatis整合_接收参数
目录 第1章:SpringMVC简介 1.1 什么是SpringMVC 1.2 SpringMVC的处理流程 第2章:SpringMVC入门程序 2.1 场景描述 2.2 步骤分析 2.3 步骤一:创 ...
- SpringMVC框架 课程笔记
SpringMVC框架 课程笔记 第0章 SpringMVC框架的核心内容 1.SpringMVC 概述 2.SpringMVC 的 HelloWorld 3.使用 @RequestMapping 映 ...
- SpringMVC框架搭建 基于注解
本文将以一个很简单的案例实现 Springmvc框架的基于注解搭建,一下全为个人总结 ,如有错请大家指教!!!!!!!!! 第一步:创建一个动态web工程(在创建时 记得选上自动生成 web.xml ...
- 教你搭建SpringMVC框架( 更新中、附源码)
一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...
- springMVC框架访问web-inf下的jsp文件
博客原文章:http://td.xue163.com/1042/1/10425265.html 用户提出问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC ...
- SpringMVC框架图解析
Spring框架提供了构造Web应用程序的全能MVC模块.Spring MVC分离了控制器.模型对象.分派器以及处理程序对象的角色,这种分离让它们更容易进行制定.是一个标准的MVC框架. 那你猜一猜哪 ...
随机推荐
- mybatis 添加后获得该新增数据自动生成的 id
// useGeneratedKeys默认值为false,keyProperty的值对应的是User类中的主键字段名 // mybatis 写法如下 <insert id="inser ...
- 6.8.5 使用Lambda表达式调用Arrays的类方法
6.8.5 使用Lambda表达式调用Arrays的类方法 实例 Arrays类的有些方法需要Comparator. XxxOperator.XxxFunction等接口的实例,这些接口都是函数式接口 ...
- Ionic3学习笔记(九)关于 Android 端软键盘弹出后界面被压缩的问题
本文为原创文章,转载请标明出处 今天做了一个如下图所示的页面. iOS 端毫无 bug,Android 端却出现了问题.当软键盘弹出后,Android 端的 tabs 移到了软键盘的上面,再仔细一看, ...
- python编程基础——集合
集合是是基本数据类型的一种集合类型. 作用:去重 属性:intersection.union.difference.issubset 实例: list_1=[1,2,3,4,3,5,2,6,1]lis ...
- wabpack踩坑
webpack 打包时会用 NODE_ENV 来标识是生产环境还是开发环境光, "build": "NODE_ENV=production webpack", ...
- 醉酒驾驶VS睡眠不足,哪个更危险
在全球范围内,睡眠不足驾驶每年导致成千上万起交通事故,醉酒驾驶就更不用说了.毫无疑问,两种情况下都不应该驾车,都有危险.睡眠不足和醉酒驾驶相对来说哪个更危险呢? 如果要问哪一个"好" ...
- linux系统文件被删的几种恢复方法
参考链接:https://www.cnblogs.com/276815076/p/5703796.html 1.几种恢复方法,这里只是记录别的博客提到的方法,本人并未亲自验证. ext3用ext3gr ...
- [开源福利] Arithmetic Generator
Arithmetic Generator Built with ❤︎ by Simon Ma ✨ A powerful arithmetic generator
- 解决getImageData跨域问题
在项目开发过程中要用到html5增加的getImageData方法来实现刮刮卡的效果,后台上传图片,手机端用手刮.在本地开发没遇到问题,上线之后发现刮不了,提示"Uncaught Secur ...
- 如何用Postman做接口自动化测试
目录 前言 什么是自动化测试 自动测试测试分类 为什么需要自动化测试 Postman自动化测试演示 1.新建集合 2.新建接口 3.填写自动化测试脚本 4.录入所有接口 5.执行自动化测试 前言 什么 ...