webwork MVC 支持

       Web应用开发框架的最重要的一个任务是支持逻辑, 内容, 表现相分离的理念. 如果没有做到这一点, 通常会导致维护上的问题, 如果开发团队结构复杂(因为每一个团队成员通常只负责应用的某一方面(aspect)), 还会使应用的开发变得更加困难. 达到分离目的的一般方法是采用MVC(Model-View-Controller)设计模式. 该模式鼓励使用分离的代码来处理模型(model, 即"业务逻辑"), 控制器(controller, 即"应用逻辑")和视图(view). 这样分离之后, 下一个问题是: 控制器的代码与表现部分如何交互. 有两种常用的设计模型可以做到这一点, 它们分别被称为Model-1和Model-2. 这两种模型将在下文描述.

Model-1

       Model-1方式的基本想法是在表示层(presentation layer)如JSP或模版中调用控制器代码. 如果你正在使用JSP, 这意味着你可以通过两种方式执行你的WebWork活动: 使用"webwork:action"标签调用执行; 或使用"webwork:bean"标签像调用JavaBeans一样执行活动.

Model-2

       在Model-2方式中, 哪些代码调用控制器以及哪些视图进行展示由第三方决定, 通常是一个servlet分发器. 分发器解码HTTP请求中的URL, 然后决定执行哪些代码. 一个包含控制器代码的Java对象被获取并执行, 从而完成对某个应用逻辑和业务逻辑的处理. 当执行结束后, 分发器将请求转交(forward)给一个视图处理器(如一个JSP), 它使用前一个处理的数据绘制结果视图.

由于控制器逻辑与表现生成完全解藕, 使得根据执行情况来显示不同结果页面成为可能. 例如, 如果处理出现错误就可以显示一个错误页面而不显示正常的结果页面.

Model-1方式的优点如下.

  • 不需要建立代码与表示之间的映射关系.
  • 易于察看JSP或模版中执行了哪些代码.
  • 如果页面中的一部分要求某个处理过程只允许成功(否则系统失灵), 那么这些代码调用和表现部分的代码(如JSP标签库和HTML)不必分离到新的活动和JSP页面中处理过程. 这样可以提高性能和可读性.


Model-2方式的优点如下.

  • 代码和表现彻底分离. 同一个表现页面可以被多个不同的活动复用, 这些活动可以访问不同的数据但使用相同的方式展示.
  • 如果一个活动可能导致多种状态, 如"成功", "需要重新输入", 或"出现错误", 那么使用Model-2方式可以很容易的将这些状态映射到不同的页面.


选择使用的首要原则是: 当代码仅仅是获取并显示数据(这被称为read-type code)时使用Model-1, 只要当模型是由活动或一个处理流程所改变时就应当使用Model-2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值