Struts2之模型驱动及分层架构初识

一、学习案例:通过在loginUI.jsp页面输入登录账号和密码判断是否正确,正确则跳转到成功页面(success.jsp),错误则返回登录页面(loginUI.jsp)。

二、案例分析:struts2值传递分为:属性驱动和模型驱动。

a)属性驱动

属性驱动就是在页面通过form表单设置name属性,在表单提交后在action中通过相同的名称属性的变量获取提交值。

	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

a)模型驱动

模型驱动就是通过指定的对象获取表单提交的值,struts2会自动填充对象,在action中,我们可以直接通过对象获取单个属性值。

注意:使用模型驱动必须实现ModelDriven。

	private User user = new User();

	public User getModel() {
		return user;
	}

应用分层体系架构初始,大家也了解到分层带来的好处,首先就是逻辑清晰,还有就是协作带来的开发好处。分层开发只能上层调用下层,而下层是不可以调用上层的,同时,下层只会对上层开放接口,这也是面向接口开发带来的好处。

d)通过查看API文档大家可以发现ModelDriven使用了泛型,而在泛型中不可或缺地会使用反向代理,关于“反向代理”在此不多做解释,有兴趣地可以去单独查资料,有空时,我也会单独写篇博文讲解。

e)大家要学会思考问题,多动手。比如,模型驱动是通过匹配对象赋值,还是通过匹配属性名称赋值?我就不说答案了。大家可以动手测试。

三、经验之谈:

a) Mvc分层可以说是现在项目开发必用的,毕竟一个项目的开发是多人同时协作进行的。分层的优势和好处也是不言而喻的。当然分层的好处对于后期的维护也是很重要的。但在一些小型项目的开发,我们应该根据现实情况来定,不然过多的分层也会影响系统的开发。我的“爱尚合伙人”就抛弃了dao层的处理,毕竟自己开发的该舍也的舍,不然就是自找麻烦。

b) 对于初学者学习ssh而言,框架的庞大和繁琐是很让人头疼。我当初学习ssh的路线是:struts2---->hibernate---->spring。Ssh框架的学习对于大多人来讲都是这样的学习路线。但是这样的学习方式对于初学者来讲也是有一定负面的。比如struts2插件功能的繁琐和标签库的庞大都是很容易让初学者失去耐心的。但在学习了解了hibernate之后,框架的好处才得以体现,这时就会自然而然地让人眼前一亮,框架简单的配置就能省去servlet的繁琐而重复的开发,框架的优势也得以体现。所以框架的学习和掌握是很重要的,我们要耐得住寂寞,多读、多写,等到ssh系统学完,我们就会发现自己已经不知不觉的爱上了它。

c) 属性驱动和模型驱动的优劣:

1、属性驱动灵活,准确。模型驱动不灵活,有时候页面提交过来的参数并不属于    模型中的属性,此时我们要么使用代理对象,要么就使用属性驱动。

2、模型驱动更符合面向对象的编程风格,它可以把离散的值聚合在一起。

d) 至于在项目开发中我们要使用哪种方式,其实按情况分。在“爱尚合伙人”的开发 中,一般通用模型驱动,在模型中没有的值,我会用属性驱动单个获取,结合使用 也是很不错的。

四、参考项目:http://download.csdn.net/detail/u011638419/8186055

五、每日一乐:

男人就是这么奇怪,自己的女人,脱光了他都没反应,

别人的女人,露个乳沟,就流鼻血。

最终解释权归爱尚合伙人所有,转载请注明出处。

时间: 2024-11-10 01:18:13

Struts2之模型驱动及分层架构初识的相关文章

Hibernate之struts2整合hibernate以及MVC分层架构的使用

 一.学习案例:通过实现会员注册功能整合struts2和hibernate,同时了解hibernate的API的使用. 二.案例分析:这章主要是MVC分层架构以及struts2和hibernate的整合思路.代码请查看演示项目. a)这次的演示项目使用了MVC分层架构.大家一定要下载演示项目进行分析. b)导入struts2和hibernate所需要的jar包 c)创建struts.xml和hibernate.cfg.xml d)在web.xml配置struts2 e)创建注册页面(regi

(转)基于DDD的现代ASP.NET开发框架--ABP分层架构

介绍DDD概念Eric Evans的“Domain-Driven Design领域驱动设计”简称 DDD,它是一套综合软件系统分析和设计的面向对象建模方法,或者可称为MDD模型驱动方法的一种,区别于MDA模型驱动架构.它是一种分析设计建模方法,它倡导统一语言,提出了实体和值对象以及聚合根等概念,借助DDD我们能够在结构理清需求中领域模型. 过去系统分析和系统设计都是分离的,正如我们国家“系统分析师” 和“系统设计师” 两种职称考试一样,这样割裂的结果导致,需求分析的结果无法直接进行设计编程,而能

[Architect] ABP(现代ASP.NET样板开发框架)(2) 分层架构

本节目录 介绍 Domain Layer Application Layer Infrastructure Layer Web Layer SPA & MPA frameworks/libraries 其他 介绍 为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术. ABP遵循Domain Driven Design,在DDD中,会有4个基础分层. Presentation(展现层): 引用 Application Layer ,提供用户界面. Application(应用层

应用程序框架实战十三:DDD分层架构之我见(转)

前面介绍了应用程序框架的一个重要组成部分——公共操作类,并提供了一个数据类型转换公共操作类作为示例进行演示.下面准备介绍应用程序框架的另一个重要组成部分,即体系架构支持.你不一定要使用DDD这样的架构,使用单层架构和普通三层架构一样可以,不过你如果希望获得更进一步的复用性和封装度,使用更加面向对象的技术是必经之程. 我在2010年以前还在使用古老的ASP.NET WebForm和原始的Ado.Net.之前我有个观念:.NET技术发展太快,跟着微软屁股后面跑太累,所以只使用它一些原始的东西,自己封

从Microsoft.AspNet.Identity看微软推荐的一种MVC的分层架构

Microsoft.AspNet.Identity简介 Microsoft.AspNet.Identity是微软在MVC 5.0中新引入的一种membership框架,和之前ASP.NET传统的membership以及WebPage所带来的SimpleMembership(在MVC 4中使用)都有所不同. Microsoft.AspNet.Identity是符合微软开放Owin标准里面Security标准的一种实现.且在MVC 5中默认使用EntityFramework作为Microsoft.A

分层架构

分层架构 最近有一位同事在周会上做了有关SOA的分享,在开始时提出了一个问题,在我们开始一个项目时,是按照功能层面进行架构分拆(例如Customer项目,Order项目),还是按照结构层面进行架构分拆(例如Model层,View层).恰巧在前几天的一个后台项目重构过程中,一个同事也问了我类似的问题,所以想在这里简单记录下. 分层架构 1 我们先看传统的分层架构(Layer Pattern),它是以结构层面对软件项目进行分层划分,将应用程序划分为多个子任务,让每个任务处于一个单独的架构层,完成独立

应用程序框架实战七:分层架构的选择

建立应用程序框架,首先要考虑的问题是,你准备采用哪种分层架构,然后根据应用程序框架的逻辑层次来确定需要创建的VS解决方案和程序集. 如果项目很小,需求很简单,时间异常紧迫,且你手上没有任何积累,那么,单层架构将是首选,最简单的单层架构如下图所示(为了集中你的注意力,我把不相关的文件都删除了). 单层架构的主要优势是代码火力集中,干活直截了当,不像多层架构那样拐弯抹角,每个操作都需要层层传递.对于上图的User.aspx,所有相关代码都直接写到aspx页面或后置代码中,包括界面上的控件操作,业务操

.NET应用架构设计—重新认识分层架构(现代企业级应用分层架构核心设计要素)

阅读目录: 1.背景介绍 2.简要回顾下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴露出来) 3.2.应用层中的应用控制器模式(通过控制器模式对象化应用层的职责) 3.3.业务层中的命令模式(事务脚本模式的设计模式运用,很好的隔离静态数据) 4.服务层作为SOA契约公布后DTO与业务层的DomainModel共用基本的原子类型 5.两种独立业务层职责设计方法(可以根据具体业务要求来搭

三层架构初识和搭建

一.是什么? 1.表现层(UI):展现给用户的界面,用户在使用一个系统的时候他的所见所得.主要表示Web或WinForm方式,对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问.如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务. 2.业务逻辑层(BLL):针对具体问题的操作,主要负责对数据层的操作,对数据业务逻辑处理. 3.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添.删除.修改.查找等具体为业务逻辑层或表示层提供数据服务. 二.为什么?