SpringMVC框架03——数据绑定
1、绑定基本数据类型
在Controller类中添加业务方法:
/**
* 绑定基本数据类型
*/
@RequestMapping("/baseType")
@ResponseBody
public String baseType(@RequestParam("id") int id){
return "id="+id;
}
访问:

2、绑定包装类
Controller类中的业务方法:
/**
* 绑定包装类
*/
@RequestMapping("/packageType")
@ResponseBody
public String packageType(@RequestParam("id") Integer id){
return "id:"+id;
}
访问:

3、绑定数组类型
Controller类中的业务方法:
/**
* 绑定数组
*/
@RequestMapping("/arrayType")
@ResponseBody
public String arrayType(String[] name){
StringBuffer stringBuffer = new StringBuffer();
for (String item:name){
stringBuffer.append(item+" ");
}
return stringBuffer.toString();
}
访问:

4、绑定POJO对象
创建Course类和Author类
public class Course {
private int id;
private String name;
private double price;
private Author author;
//getter()、setter()
}
public class Author {
private int id;
private String name;
//getter、setter()
}
创建CourseDao类,模拟数据库存储:
@Repository
public class CourseDao {
//模拟数据库存储数据
private Map<Integer, Course> map = new HashMap<>(); /**
* 添加方法
*/
public void add(Course course){
map.put(course.getId(),course);
} /**
* 获取所有课程
*/
public Collection<Course> getAll(){
return map.values();
}
}
Controller类中添加业务方法:
@Controller
public class DataBindController { @Autowired
private CourseDao courseDao; /**
* 绑定POJO对象
*/
@RequestMapping("/pojoType")
public String pojoType(Course course, Model model){
//将课程添加到数据库
courseDao.add(course);
//封装数据
model.addAttribute("courses",courseDao.getAll());
return "showData";
} }
创建addCourse.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加课程</title>
</head>
<body>
<form action="/pojoType" method="post">
<p>
课程编号:<input type="text" name="id">
</p>
<p>
课程名称:<input type="text" name="name">
</p>
<p>
课程价格:<input type="text" name="price">
</p>
<p>
讲师姓名:<input type="text" name="author.name">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
</body>
</html>
创建showData.jsp页面,显示数据:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>展示数据</title>
</head>
<body> <table border="1" width="50%">
<tr>
<th>课程编号</th>
<th>课程名称</th>
<th>课程价格</th>
<th>讲师姓名</th>
</tr>
<c:forEach var="course" items="${courses}">
<tr>
<td>${course.id}</td>
<td>${course.name}</td>
<td>${course.price}</td>
<td>${course.author.name}</td>
</tr>
</c:forEach>
</table> </body>
</html>
访问URL:

提交后结果:

5、绑定List集合
创建CourseList类,用于存储集合对象
public class CourseList {
private List<Course> courses;
public List<Course> getCourses() {
return courses;
}
public void setCourses(List<Course> courses) {
this.courses = courses;
}
}
Controller类中的业务方法:
/**
* 绑定List集合
*/
@RequestMapping("/listType")
public String listType(CourseList courseList,Model model){
for (Course course : courseList.getCourses()){
courseDao.add(course);
}
model.addAttribute("courses",courseDao.getAll());
return "showData";
}
创建addCourseList.jsp页面,添加数据:
<form action="/listType" method="post">
<p>
课程1编号:<input type="text" name="courses[0].id">
</p>
<p>
课程1名称:<input type="text" name="courses[0].name">
</p>
<p>
课程1价格:<input type="text" name="courses[0].price">
</p>
<p>
讲师姓名:<input type="text" name="courses[0].author.name">
</p>
<hr>
<p>
课程2编号:<input type="text" name="courses[1].id">
</p>
<p>
课程2名称:<input type="text" name="courses[1].name">
</p>
<p>
课程2价格:<input type="text" name="courses[1].price">
</p>
<p>
讲师姓名:<input type="text" name="courses[1].author.name">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
访问URL:

提交后结果:

6、绑定Map集合
创建CourseMap类,用于存储Map数据:
public class CourseMap {
private Map<String,Course> courses = new HashMap<>();
public Map<String, Course> getCourses() {
return courses;
}
public void setCourses(Map<String, Course> courses) {
this.courses = courses;
}
}
Controller类中的业务方法:
/**
* 绑定Map集合
*/
@RequestMapping("/mapType")
public String mapType(CourseMap courseMap,Model model){
for (String key : courseMap.getCourses().keySet()){
Course course = courseMap.getCourses().get(key);
courseDao.add(course);
}
model.addAttribute("courses",courseDao.getAll());
return "showData";
}
创建addCourseMap.jsp页面:
<form action="/mapType" method="post">
<p>
课程1编号:<input type="text" name="courses['one'].id">
</p>
<p>
课程1名称:<input type="text" name="courses['one'].name">
</p>
<p>
课程1价格:<input type="text" name="courses['one'].price">
</p>
<p>
讲师姓名:<input type="text" name="courses['one'].author.name">
</p>
<hr>
<p>
课程2编号:<input type="text" name="courses['two'].id">
</p>
<p>
课程2名称:<input type="text" name="courses['two'].name">
</p>
<p>
课程2价格:<input type="text" name="courses['two'].price">
</p>
<p>
讲师姓名:<input type="text" name="courses['two'].author.name">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
访问URL:

提交后结果:

7、绑定Set集合
创建CourseSet类,必须要在无参构造中,向set集合添加两个对象!
public class CourseSet {
private Set<Course> courses = new HashSet<>();
public Set<Course> getCourses() {
return courses;
}
public void setCourses(Set<Course> courses) {
this.courses = courses;
}
public CourseSet() {
courses.add(new Course());
courses.add(new Course());
}
}
Controller类中的业务方法:
/**
* 绑定Set集合
*/
@RequestMapping("/setType")
public String setType(CourseSet courseSet,Model model){
for (Course course : courseSet.getCourses()){
courseDao.add(course);
}
model.addAttribute("courses",courseDao.getAll());
return "showData";
}
创建addCourseSet.jsp页面
<form action="/setType" method="post">
<p>
课程1编号:<input type="text" name="courses[0].id">
</p>
<p>
课程1名称:<input type="text" name="courses[0].name">
</p>
<p>
课程1价格:<input type="text" name="courses[0].price">
</p>
<p>
讲师姓名:<input type="text" name="courses[0].author.name">
</p>
<hr>
<p>
课程2编号:<input type="text" name="courses[1].id">
</p>
<p>
课程2名称:<input type="text" name="courses[1].name">
</p>
<p>
课程2价格:<input type="text" name="courses[1].price">
</p>
<p>
讲师姓名:<input type="text" name="courses[1].author.name">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
访问URL:

提交后结果:

8、绑定JSON数据
在pom.xml配置文件中添加jackson依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.3</version>
</dependency>
在springmvc.xml文件中配置消息转换器:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</mvc:message-converters>
</mvc:annotation-driven>
如果在配置消息转换器时,出现报红线,可能是约束的原因,只需要在springmvc.xml的约束中添加以下配置:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
Controller类中的业务方法:
/**
* 绑定JSON数据
*/
@RequestMapping("/jsonType")
@ResponseBody
public Course jsonType(@RequestBody Course course){
course.setPrice(course.getPrice()+100);
return course;
}
创建sendJson.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>绑定JSON数据</title>
<script src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function () {
var course = {
"id":"8",
"name":"SSM框架整合",
"price":"200"
};
$.ajax({
url:"/jsonType",
data:JSON.stringify(course),
type:"post",
contentType:"application/json;charse=UTF-8",
dataType:"json",
success:function(data){
alert(data.name+"---"+data.price);
}
})
});
</script>
</head>
<body> </body>
</html>
发送URL:

SpringMVC框架03——数据绑定的更多相关文章
- 教你搭建SpringMVC框架( 更新中、附源码)
一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...
- SpringMVC类型转换、数据绑定
SpringMVC类型转换.数据绑定详解[附带源码分析] 目录 前言 属性编辑器介绍 重要接口和类介绍 部分类和接口测试 源码分析 编写自定义的属性编辑器 总结 参考资料 前言 SpringMVC是目 ...
- SpringMvc框架MockMvc单元测试注解及其原理分析
来源:https://www.yoodb.com/ 首先简单介绍一下Spring,它是一个轻量级开源框架,简单的来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开 ...
- SpringMVC框架简介
1.简介 SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 01.Spring mvc的优缺点 M ...
- SpringMVC框架02——SpringMVC的Controller详解
1.基于注解的控制器 1.1.@Controller 注解类型 在SpringMVC中使用org.springframework.stereotype.Controller注解类型声明某类的实例是一个 ...
- 教你搭建SpringMVC框架( 附源码)
一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...
- 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 ...
随机推荐
- c读入实型
读入: 如果读入的数为整型,然后转为实型,则%lf 否则%f也可以 读出: %f,这样在codeblocks才能看到正确的结果
- SSM框架的搭建与测试
关于框架的搭建无非就是 框架所依赖的jar包,然后就是关于各个框架的配置文件: 下面我们来看下不同层的依赖的jar包以及各个配置文件: 首先pojo这一层只需要依赖parent聚合工程 mapper层 ...
- ActiveMQ基础教程JMS概述
什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息 ...
- Spring RedisTemplate操作-String操作(2)
@Autowired @Resource(name="redisTemplate") private RedisTemplate<String, String> rt; ...
- springboot 整合 mongodb实现 批量更新数据
现需求:需要批量将1000个数据先查询在更新到mongodb(如果查询不到数据,则添加数据) 1:工具类BathUpdateOptions import org.springframework.dat ...
- 收集SpringBoot的一些学习资料
1:wuyouzhuguli的博客 (24篇) https://github.com/wuyouzhuguli/Spring-Boot-Demos 2:方志鹏的博客 (27篇) https://b ...
- Linux环境下FTP工具的使用方法
在Windows环境下创建Ftp目录作为服务器根目录 在Linux端的操作: 从服务器端下载文件到Linux端: ftpget -u User -p Password ServerIP File Fi ...
- XSS小游戏通关Writeup
源码下载:https://files.cnblogs.com/files/nul1/xss%E7%BB%83%E4%B9%A0%E5%B0%8F%E6%B8%B8%E6%88%8F.zip 我也没啥可 ...
- C# Json To Object 无废话
json字符串如下: { success : 0, errorMsg : "错误消息", data : { total : "总记录数", rows : [ { ...
- 关于Spring 事务管理传播属性的配置及作用-嵌套事务
先了解事务的7种传播属性: PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PROPAGATION_SUPPORTS -- 支持当前 ...