PO是持久化对象,它只是将物理数据实体的一种对象表示,为什么需要它?因为它可以简化我们对于物理实体的了解和耦合,简单地讲,可以简化对象的数据转换为物理数据的编程。VO是什么?它是值对象,准确地讲,它是业务对象,是生活在业务层的,是业务逻辑需要了解,需要使用的,再简单地讲,它是概念模型转换得到的。FormBean又是什么?它只是HTML表单的封装,是为了在控制层弱化request中存储数据的作用,将request的get方法转变为对象的存取值。
理清了上述概念,好,我们就开始讨论,为什么需要它们,为什么不需要它们。首先说PO和VO吧,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(当然我是指他们的属性)。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。又正因为这样,业务逻辑层也独立开来,它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理,至于怎么存怎么读交给别人吧!不过,另外一点,如果我们没有使用数据持久层,或者说没有使用hibernate,那么PO和VO也可以是同一个东西,虽然这并不好。其次,让我们看看FormBean和VO,如果简单地讲,我们是可以不需要FormBean的,它只是struts带来的一部分,而VO是无论如何不能舍弃的。如果让FormBean直接到业务层(它本来应该生活在控制层),那么会带来什么?View和Model就出现了强耦合,如果想改一下view的表示,整个业务逻辑都得改,恐怖的事情啊!
这些对象概念的出现其实就是体现了一种层的思维,也是体现了一种框架的思维,在层与层之间我们需要什么?我们应该怎么通信,其实大家认真地用笔画上几个图就可以知道了。做web应用尤其是企业应用,切忌像楼上某些朋友说的,一个东东从头到尾,那是非常低劣和错误的设计。我们不要单纯地就为了某些对象去争论什么,它们更多的只是思维。这样的思维给我们带来了哪些好处,不言自明,当然,我们也不得不否认,我们因此失去了某些东西,比如局部的性能或者繁琐的代码和调用过程,只是自己衡量一下,它是否值得。
分享到:
相关推荐
本话题将围绕如何在Java中使用这些库来读取JSON数据并进行FormBean的操作进行详细讲解。 首先,我们需要理解FormBean的概念。FormBean是Java Web开发中的一个术语,通常用于封装HTML表单提交的数据,以便在服务器端...
在Java Web开发中,动态验证FormBean是一种常见的实践,它允许开发者在运行时根据不同的业务需求灵活地定义和改变表单验证规则。本教程将深入探讨动态验证FormBean的概念、优势以及实现方法。 动态验证FormBean的...
在这个例子中,我们将深入探讨如何在Struts1.2中实现动态FormBean并添加验证功能。 首先,让我们理解什么是动态FormBean。在传统的Struts1应用中,每个ActionForm Bean都是一个Java类,它对应于HTML表单的字段,并...
VO的作用在于封装业务逻辑所需的数据,它可以是由FormBean转化而来,也可以直接由PO转换得到,但其结构应该符合业务规则,而不是简单地复制Web层或持久层的数据结构。在用户查询信息的例子中,VO可能包含一个全名...
FormBean是Struts中的一个重要概念,它充当了模型层与视图层之间的桥梁,用于存储用户的输入数据。本篇文章将深入探讨在Struts中FormBean的日期类型字段如何进行赋值以及自动转化。 一、FormBean的概念与作用 ...
B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 答案:A 8.以下哪些不是...
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的...4.5 动态Bean 见用DynaBean减除不必要的VO和FormBean
《FormBeanUtil:Java Web开发中的实用工具类》 在Java Web开发中,表单(Form)和Bean(JavaBean)是两个非常重要的概念。表单通常用于收集用户输入的数据,而Bean则作为数据的载体,封装这些数据并提供业务逻辑。...
此外,这种机制还为与其他框架(如Hibernate)的整合提供了便利,可以将Struts2的VO和Hibernate的PO(Persistent Object)进行整合,进一步提高代码的复用性和系统的整体性能。 综上所述,“对象.属性”注入是...
为了进一步熟悉SSM框架,我单独摘出了mybatis部署在普通的java Web项目上,从spring上插入了依赖注入,自己根据反射编写了一个映射工具类,可以根据前端返回的信息来封装bean FormBean如下 public class FormBean { ...
方式一:通过 FormBean 实现数据传递 在 Struts 中,我们可以通过 FormBean 来实现数据由 HTML 到 Action 之间的传递。FormBean 是一个特殊的 JavaBean,它可以将 HTML 表单中的数据封装起来,并将其传递给 Action...
Struts2 框架使用 VO 对象来代替传统的 formbean,这使得开发变得更加灵活和方便。VO 对象可以直接用于页面的绑定,减少了开发的复杂度。 4.良好的注入机制 Struts2 框架提供了良好的注入机制,连 session、...
在北大青鸟S2阶段的学习中,学员们会接触到 Struts 框架,通过Action、Form、FormBean 和 DispatcherAction 的学习,掌握其核心概念和应用。 **1. Action:** Action 是 Struts 框架中的核心组件,负责处理用户请求...
4. **创建FormBean**:如果请求中包含表单数据,ActionServlet会创建一个FormBean实例,将请求参数填充到FormBean中。FormBean通常用来存储用户的输入数据,以便在后续处理中使用。 5. **调用ActionBean**:Action...
转换成对应的FormBean实例,并填充其属性。 2. 在FormBean中,会调用reset方法,将FormBean的属性恢复到初始状态,确保每次 处理请求前,FormBean处于一个干净的状态。 3. 随后,调用FormBean的setter方法,根据HTTP...
当用户提交表单时,Struts会使用FormBean来存储这些数据,并在业务逻辑处理完成后,可能将FormBean的值回填到页面上。 在`myStruts1`项目中,你可能已经实现了这些核心组件,并通过编写自定义的Action、FormBean和...
该配置文件定义了一个名为`UserFormBean`的FormBean以及一个名为`RegisterAction`的Action,并关联了该Action与FormBean。 4. **FormBean类**: FormBean类用于封装用户的表单数据。例如,创建一个名为`...
- 指定FormBean的名称,该名称用来识别当前Action所关联的FormBean。 - **className** - 指定Action类的全限定名,通常为`org.apache.struts.action.ActionMapping`的子类。 - **type** - 指定Action类的类型,...
Struts框架的核心组件包括Action、FormBean、ActionForm、ActionServlet等。 在图书管理系统中,Struts框架可以用于设计和实现图书管理模块。图书管理系统的主要功能包括图书信息管理、借阅管理、读者管理等。...
在Struts中几种情况可以使标签初始就是选中的,Formbean里面该Property的值设为 1.on 、2.yes 、3.true 这三种情况都是可以实现默认选中的。 注:如果不选中,最好把Property的设置为””,因为在Action中得到...