spring复杂数据类型传递
Posted 57容杰龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring复杂数据类型传递相关的知识,希望对你有一定的参考价值。
1.VO对象与PO对象的区别:
PO(persistant object) 持久对象:通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
VO(value object) 值对象:通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。
相同:
都是Javabean,都是由一组属性和属性的get和set方法组成
区别:(意义和本质不同)
①PO对象中的属性关联数据库的字段
②VO对象中的属性可以随意增加、修改、删除,对应的页面表单属性
一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。
2.值对象封装信息(VO)
表单的input里的name必须要与VO对象的属性名称一致
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 4 <c:set var="basePath" value="${pageContext.request.contextPath }"></c:set> 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <title>Insert title here</title> 10 </head> 11 <body> 12 ${pageContext.request.contextPath } 13 <form action="${basePath }/person/welcome.action" method="post"> 14 <input type="text" name="person.name"> 15 <input type="number" name="person.age"> 16 17 <input type="text" name="list[0]"> 18 <input type="text" name="list[1]"> 19 <input type="text" name="list[2]"> 20 21 <input type="text" name="map[‘map1‘]"> 22 <input type="text" name="map[‘map2‘]"> 23 24 <input type="text" name="strings[0]"> 25 <input type="text" name="strings[1]"> 26 27 <input type="submit" value="提交"> 28 </form> 29 <span>${dataVo.person.name }</span> 30 <span>${dataVo.person.age }</span> 31 <span>${dataVo.list[0] }</span> 32 <span>${dataVo.list[1] }</span> 33 <span>${dataVo.list[2] }</span> 34 <span>${dataVo.map["map1"] }</span> 35 <span>${dataVo.map["map2"] }</span> 36 <span>${dataVo.strings[0] }</span> 37 <span>${dataVo.strings[1] }</span> 38 39 </body> 40 </html>
@RequestMapping("/welcome.action") public String welcome(DataVo dataVo,ModelMap modelMap){ System.out.println(dataVo); modelMap.put("dataVo", dataVo); return "login"; }
1 public class DataVo { 2 private Person person; 3 private List<String> list; 4 private Map<String,String> map; 5 private String[] strings;
以上是关于spring复杂数据类型传递的主要内容,如果未能解决你的问题,请参考以下文章