常见的前台和后台之间的数据交换方式:页面提交请求参数到Action,在Action中接收参数并且对请求参数进行数据封装,封装到一个JavaBean中,然后将JavaBean传递给业务层。

Struts2封装数据的方式有两大类,一是属性驱动,二是模型驱动

属性驱动

属性驱动可分为两类,一类是需要提供属性的set方法,另一类是同过表达式直接封装数据到对象中。

方法一:

需要直接在Action中定义属性,并且提供属性的set方法,如果一个Action类有太多属性,则这种方法会大大增加代码量,不合适

前端页面:

<form action="/bos/ActionDemo.action" method="post">
    姓名<input type="text" name="name"/>
</form>

Action类:

public class ActionDemo extends ActionSupport {private String name;
    public void setName(String name) {this.name = name;
    }
}

方法二:

需要Action中定义一个JavaBean对象并提供它的get方法,在页面中调用参数的值时要用类名来调用

前端页面:

<form action="/bos/ActionDemo.action" method="post">
    姓名<input type="text" name="user.name"/>
</form>

Action类:

public class ActionDemo extends ActionSupport {private User user;
    public User getUser() {return user;
    }
}

模型驱动(ModelDriven)

通过实现ModelDriven接口来接收请求参数,Action类必须实现ModelDriven接口,并且要重写getModel()方法,这个方法返回的就是Action所使用的数据模型对象JavaBean,采用模型驱动可以达到JavaBean所封装的属性与表单的属性一一对应的目的,JavaBean成为数据的载体

前端页面:

<form action="/bos/ActionDemo.action" method="post">
    姓名<input type="text" name="name"/>
</form>

Action类:

public class ActionDemo extends ActionSupport implements ModelDriven<User>{private User user = this.getModel();
    @Override
    public User getModel() {return user;
    }
}

Struts2-01-数据访问相关推荐

  1. 《数据访问 - 第01章 文件 - 文件和流的概念》

    <数据访问 - 第01章 文件 - 文件和流的概念> 1.数据 在软件领域中,数据持久化方式包括: a)磁盘文件,在C#中使用文件流来进行数据的读写操作 b)数据库,在C#使用ADO.NE ...

  2. Struts2之数据标签(一)

    一.Struts2的数据标签主要用于提供各种数据访问相关的功能,包括显示一个Action里的属性,以及生成国际化输出等功能.数据标签主要包括:property.set.push.param.bean. ...

  3. 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能...

    下期预告: 由于很多园友反馈,有的组件不应该缺席.测试复杂度不够.测试还缺乏一定的公平. 因此考虑在下一个版本中,确保在更加公平的前提下进行更高复杂度的测试 . 同时将分为2组测试,纯SQL组件及纯O ...

  4. 10-穿墙代理的设置 | 01.数据抓取 | Python

    10-穿墙代理的设置 郑昀 201005 隶属于<01.数据抓取>小节 我们访问 Twitter 等被封掉的网站时,需要设置 Proxy . 1.使用HTTP Proxy 下面是普通HTT ...

  5. PHP设计模式--数据访问对象模式

    最简单的Web部件和最复杂的在线电子商务Web站点具有一个共同点:它们都要处理数据.大量的编程都设计数据的访问和操作.随着Internet的发展.脸颊存储设备应用数据的大量增长.对分析论的更深入理解以 ...

  6. [转]Flex与.NET互操作(三):基于WebService的数据访问(下)

    转自:http://blog.csdn.net/beniao277/archive/2009/01/19/3837605.aspx 在上一篇文章<Flex与.NET互操作(二):基于WebSer ...

  7. Struts2之数据标签(二)

    Struts2之数据标签(一):http://blog.csdn.net/u012561176/article/details/46848817 1.action标签:使用此标签能够同意在JSP页面中 ...

  8. sql 如何设置行级锁_如何使用SQL Server 2016行级安全性过滤和阻止数据访问

    sql 如何设置行级锁 SQL Server 2016 came with many new features and enhancements for existing ones, that con ...

  9. 实战 .Net 数据访问层 - 23

      u     使用现成的框架 Ø        首选当然是.NET Framework即将正式推出的ObjectSpaces! Ø        如果希望Total Solution,Borland ...

  10. 002 第一季SpringBoot2核心技术-核心功能:配置文件、Web开发(原生组件)、数据访问、单元测试、指标监控、原理解析:@Value、命令行参数、手动获取bean、自定义starter

    三.核心技术之- ->核心功能 1. 配置文件 1.1 文件类型 1.1.1 properties 同以前的properties用法 优先级高于yml的方式. 1.1.2 yaml 1) 简介 ...

最新文章

  1. 山景智能创始人黄勇:银行要从数据智能转向业务智能,今天的金融服务难以支撑未来 | MEET2021...
  2. c# 返回一个对象实例的浅副本
  3. 30个最常用css选择器解析
  4. BB陆逊高达(3Dmax)
  5. 关于mysql行级锁中MVCC的一些理解
  6. 一个Quake2的世界浏览器DEMO(附源码)
  7. POJ - 3074 Sudoku(DLX)
  8. ubuntu 12.04 /sbin/ldconfig.real: /usr/local/lib/*.so.8 不是符号连接 解决办法
  9. 程序员都会的 35 个 jQuery 小技巧
  10. BZOJ3240 NOI2013矩阵游戏(数论)
  11. vue 使用this.reload方法刷新页面配置
  12. 记录一次浏览器主页被劫持的经历
  13. 智慧医院建设方案_【聚焦医改】安泰创新智慧医院建设方案惊艳中国医院院长大会!...
  14. 病毒名称:Hacktool (正当追杀+旁门左道)
  15. 溜客php0day挖掘,【漏洞预警】PHP7被发现三个0day漏洞,其中一个还
  16. java freemark导出word 实现word分页
  17. stm32采集脉冲信号_STM32单片机怎么产生脉冲信号控制步进电动机?
  18. golang 实现HTTP代理和反向代理
  19. Win11,cmd闪退的一种解决思路
  20. C++PrimerPlus(第6版)中文版:Chapter16.4.6关联容器_setops.cpp

热门文章

  1. sql不写parametertype_Mapper接口中方法的输入参数类型要和Mapper.xml中定义的每个sql的parameterType的类型相同...
  2. C#:访问web.config中的常量
  3. HTML:让img标签和input标签水平对齐一样高
  4. HttpClient、HttpURLConnection、OKHttp和Volley
  5. C++_弱引用 强引用_weak_ptr/share_ptr
  6. KITTI激光雷达点云解析与图像反投影
  7. 使用YOLO V4通过社交距离和口罩检测来缓解COVID
  8. 【纪中集训2019.3.23】Deadline
  9. BZOJ1022 [SHOI2008]小约翰的游戏John (博弈论)
  10. linux 常见压缩归档命令