数据验证:
这里先说一下这一章对我来说最重要的地方:我曾经是用PHP写程序的,一开始时都是一页一个程序,从数据的表面验证,到逻辑认证,到业务逻辑,到数据操作,各个方面都在一个PHP文件里。虽然可以用面向对象方式进行编写,可是却引发更多的难题和问题,这里就不说了。
在Struts里,数据校验分成两个部份,就是表面数据验证和逻辑数据验证。表面验证方面,是由ActionForm的validate()方法完成的,它较验用户提交的数据表面上(即格式上)是否正确,至于逻辑上是否正确,则由Action调用的业务逻辑层对象进行。而这里要确认的一点就是,Action并不进行逻辑验证,换个说法就是Action调用业务逻辑层进行验证。
那么Action做什么?根据状态处理转向或者重定向,也就是控制器的任务。它调用业务逻辑层对象进行操作得到状态,然后就根据状态进行转向。
把业务逻辑从Action中去掉!
这很重要。我看过很多示例,它们都把业务逻辑放在Action里,一旦不用Struts就会出现很多问题。所以业务逻辑层不能和控制层藕合。(书里面作者的表态是,Struts只能是控制层)
把业务逻辑从视图层中去掉!!
这里用到了DTO,Date Transfer Object,用于专门传输数据,而这里我的理解是,用于控制层和视图层传输数据。在这一章中,作者的代码里用到了UserView这个DTO,这个DTO由LoginAction保存进Session,那么就可以在视图中进行读取操作。
但是这也引发了我一个很大的疑问:就是作者一再强调逻辑业务和视图分开,那么为什么还要IAuthentication返回一个UserView对象呢?那么视图层对UserView这个DTO有新的数据要求时不就要重新设计IAuthertication了吗?这样就达不到书中所讲的逻辑业务和视图分开的效果了。
我个人认为,DTO由控制层通过调用业务层得到数据进行拼装,然后交付给视图。(但是这里也引发另一个疑问,就是业务逻辑能返回那么多数据吗?要作到这一点,可能Action会参与一些逻辑业务,这样就不对了。。。看看这本书是怎么处理的。)
翻译书中有一个地方翻译的不是很合理:form bean最好不要翻译成“表单bean”,读起来很不顺。。。。
分享到:
相关推荐
**第三章:构建一个应用** - **被支柱支撑的支柱**:通过构建一个简单的登录应用,介绍了使用Struts框架构建Web应用的一般过程。 - **漫游logon应用**:这部分通过实例展示了登录应用的各个界面,以及每个界面的...
### 第3章:系统总体设计 在系统设计阶段,作者使用UML活动关系图来描述系统的动态行为,并概述了系统的主要组成部分,包括图书信息管理、购物车管理、会员注册和订单处理等功能模块。每个模块的具体功能如下: - ...
#### 第三章:Struts2核心技术 本章节深入介绍了如何在Web项目中配置和使用Struts 2框架,包括: - 如何在web.xml中配置Struts 2过滤器。 - 如何在struts.xml中定义Action的执行流程。 - 如何创建和使用Action类来...
3. **第三章:构建一个简单应用** - **被支柱支撑的支柱**:引入了一个简单的示例应用——“Logon”应用。 - **漫游logon应用**:详细描述了Logon应用的功能和界面。 - **解剖logon应用**:逐个分析了Logon应用...
- **第1章:Struts2:现代Web应用框架**(第3页起) - **章节概述**:本章介绍了Struts2框架的基本概念,包括其设计理念、特点以及与其他Web框架的比较。通过本章的学习,读者将对Struts2有一个初步的认识,并了解...
#### 一、Struts框架概览 - **定义与特点**:Struts是一个用于构建企业级Java Web应用程序的开源框架。它基于MVC(Model-View-Controller)架构模式,简化了Web应用程序的开发过程,并提高了代码的可维护性。 - **...
5. **丰富的插件生态系统**:拥有广泛的社区支持和大量的第三方插件,极大地扩展了框架的功能性。 #### 五、书籍特色 - **实践导向**:本书不仅仅停留在理论层面,更注重实战操作,通过具体示例帮助读者掌握 Struts...
struts-config.xml文件是Struts框架的核心配置文件,包含了Action映射、Form Bean定义、国际化资源引用等关键配置。 #### 结语 通过本书的学习,初学者能够系统地掌握Struts框架的基本原理和使用方法,为进一步...
- **入门程序**:第1章介绍了一个简单的Struts入门程序,通过该程序演示了如何配置Struts框架并创建基本的Action和View。 - **详细配置**:第4章将深入讨论Struts组件的详细配置方法,包括如何定义Action、配置拦截...
1. **理解Struts框架**:熟悉Struts框架的基本概念、架构与工作原理,掌握其在MVC模式中的角色定位,特别是视图和控制器组件的运作机制。 2. **掌握Struts控制器与视图组件**:熟练运用Struts的控制器组件如Action...
《轻量级J2EE企业应用实战第三版》是一本非常实用的技术书籍,不仅涵盖了J2EE的基础知识,还深入介绍了Spring、Struts2、Hibernate等多个轻量级框架的应用方法。对于想要从事Java Web开发或对企业级应用感兴趣的读者...
#### Struts框架概述 Struts框架是Java Web开发中一个非常重要的轻量级框架,主要用于构建模型-视图-控制器(MVC)架构的应用程序。本书《精通Struts: 基于MVC的Java Web设计与开发》旨在帮助开发者深入了解Struts...