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复杂数据类型传递的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis--02

如何绕过将数据模型传递给片段参数以避免事务太大异常?

将数据从底部工作表对话框片段传递到片段

从另一个活动的活动中的片段传递数据

Android AIDL Service 跨进程传递复杂数据

使用导航从工具栏菜单项单击在片段之间传递数据 - Kotlin