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框架. 那你猜一猜哪 ...
随机推荐
- JS数组与字符串相互转化
<script type="text/javascript"> var obj="new1abcdefg".replace(/(.)(?=[^$]) ...
- RxJS学习笔记之Subject
本文为原创文章,转载请标明出处 目录 Subject BehaviorSubject ReplaySubject AsyncSubject 1. Subject 总的来说,Subject 既是能够将值 ...
- 关于HTTP协议与HTTP状态码的简要介绍
在互联网时代HTTP协议的重要性无需多言,对于技术岗位的同学们来说理解掌握HTTP协议是必须的.本篇博客就从HTTP协议的演进.特性.重要知识点和工作中常见问题的总结等方面进行简单的介绍.理解掌握了这 ...
- 传统if 从句子——以条件表达式作为if条件
传统if 从句子——以条件表达式作为 if条件if [ 条件表达式 ]then command command commandelse command commandfi 条件表达式 文件表达式 ...
- SimpleTrigger的使用
SimpleTrigger的作用 在一个指定时间段内执行一次作业任务或是在指定的时间间隔内多次执行作业任务 使用实例1:距离当前时间4s钟后执行,且执行一次 package com.test.quar ...
- (一)mybatis简易搭建
mybatis(基础及其搭建) 声明:该文章及该分类中的内容均基于正在开发的项目和一本参考书(深入浅出MyBatis技术原理与实战 by 杨开振) 一.mybatis核心组件(简要介绍) Sql ...
- mysql中tinyint、smallint、int和bigint类型的用法区别
mysql中tinyint.smallint.int和bigint类型的用法区别: 在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127.无符号的范围是0到255(见官 ...
- iOS 9,为前端世界都带来了些什么?「译」 - 高棋的博客
2015 年 9 月,Apple 重磅发布了全新的 iPhone 6s/6s Plus.iPad Pro 与全新的操作系统 watchOS 2 与 tvOS 9(是的,这货居然是第 9 版),加上已经 ...
- Webpack 常用 modules
@(Javascript)[webpack] babel babel-core: babel 核心程式,知道如何載入程式碼.解析和輸出檔案(但不包含編譯). babel-loader: 用來告訴 ba ...
- Android入门(创建、编译、运行、打包、安装)
一.创建Android项目 1.选择Emtpy Activity=>Next 2.配置项目 输入Name(名称) Package.name(包名) Save location(保存位置) Lan ...