zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    高速传输线PCB设计
    带状线和微带线
    资源分配
    异步时钟切换电路
    Mathcad操作tips:2D绘图
    Mathcad操作tips:函数、符号计算
    慢性胃炎注意事项
    Arduino I2C + 三轴加速度计ADXL345
    Arduino SPI + SPI Flash芯片W25Q80BV
    Arduino I2C + 三轴加速度计LIS3DH
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/7820439.html
Copyright © 2011-2022 走看看