Struts 框架之构建 Model组件

发表于:2007-07-04来源:作者:点击数: 标签:
一、概述 Model就是在对用户请求的整个控制过程中,真正处理用户请求并保存处理结果的对象,在整个过程中,我们一般利用 Java Bean来把一些信息保存起来以便在各个对象之间传递。因为在框架中,Model对象是真正处理商业逻辑功能的对象,因此也就是框架中应用
一、概述

  Model就是在对用户请求的整个控制过程中,真正处理用户请求并保存处理结果的对象,在整个过程中,我们一般利用JavaBean来把一些信息保存起来以便在各个对象之间传递。因为在框架中,Model对象是真正处理商业逻辑功能的对象,因此也就是框架中应用需求实现相关性最大的部分。 在Struts的实现里,Model的具体表现形式就是ActionForm对象和与其对应的Action对象了。对用户提交表单的数据进行校验,甚至对数据进行预处理都能在ActionForm中完成。通常的应用中,一般是一个Model对象和一个请求页面对应的关系,但也可以一个Model对象对应多个页面请求。如果struts-config.xml配置文件没有指定一个Model对象对应的Action,那么控制器将直接把(通过Model对象完成数据封装的)请求转到一个View对象。下图表示的是Model layer 的层次结构。






  在Struts中Model以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用JavaBean或EJB等。

  许多需求文档将构建Web应用的焦点集中在视图上。我们必须确保每一个提交的请求都在模型视图中都已经被定义。通常,开发者在模型组件中关注于开发JavaBean类以实现所有的功能需求。 应用应该准确的使用哪些beans,根据其需求不同而差异巨大,但是,在经过区分后通常都能分被为若干个类别。

  二、创建Model 组件

  1、JavaBeans

  在一个Web基础的应用中,能使用许多不同的"属性(attributes)"集合来保存(和访问)JavaBeans。 每个集合都有它自己不同的生命周期和beans存储在哪里的可见度。 同时,beans通过 作用域 来定义生命周期和可见度规则。 在JavaServer Pages (JSP)规范中定义了作用域选择使用以下几项(在括号中是servlet API中的等价概念定义)。

  page :Beans只会在一个JSP页中可见,只在当前的请求周期中存在。 (在 service 方法中的本地变量)

  request : Beans只会在一个JSP页中可见,与page相同或servlet包含本页,或转发到本页。 (Request属性)

  session :Beans能被所有的JSP页和servlet通过特定的用户session来使用, 它可以跨越一个或多个请求。 (Session属性)

  application :Beans能被Web应用中的所有JSP页和servlets来使用。 (Servlet context属性)
我们需要记住的是在一个web应用中JSP页面和servlet会共享bean集合的设置。 例如在一个servlet中将一个bean存储到attribute中如下:

原文转自:http://www.ltesting.net