- 译者序
- 前言
- 本书怎么使用
- 本书排版字体约定
- 本书网站
- 致谢
- 第一部分 Hibernate 快速入门
- 第 1 章 安装和设置
- 第 2 章 映射简介
- 第 3 章 驾驭 Hibernate
- 第 4 章 集合与关联
- 第 5 章 更复杂的关联
- 第 6 章 自定义值类型
- 第 7 章 映射标注
- 第 8 章 条件查询
- 第 9 章 浅谈 HQL
- 第二部分 与其他工具的集成
- 第 10 章 将 Hibernate 连接到 MySQL
- 第 11 章 Hibernate 与 Eclipse:Hibernate Tools 使用实战
- 第 12 章 Maven 进阶
- 第 13 章 Spring 入门:Hibernate 与 Spring
- 第 14 章 画龙点睛:用 Stripes 集成 Spring 和 Hibernate
- 附录 A Hibernate 类型
- 附录 B Criteria API
- 附录 C Hibernate SQL 方言
- 附录 D Spring 事务支持
- 附录 E 参考资源
- 作者简介
- 封面介绍
安装 Stripes
Stripes 项目( [2] )的目标就是要简化开发人员的生活。为此,对配置提出一定的约定,当应用程序广泛使用默认设置时,也有办法可以修改这些默认设置。就像在前面介绍 Spring 的那章一样,我们并不打算完整地介绍 Stripes 为开发人员提供的所有友好的功能,只是希望你可以通过我们的介绍而明白 Stripes 是什么,以及如何让它同 Spring 和 Hibernate 协同工作。作为开始,最好是先了解几个与 Stripes 应用程序有关的概念。虽然你只需要负责与 ActionBean 和视图打交道,也应该明白 Stripes 实现的 DispatcherServlet 和 StripesFilter 的工作原理。
DispatcherServlet
在 Stripes 应用程序中,通常只有一个 J2EE HttpServlet 接口的实现,由 Stripes 的 Dispatcher-Servlet 为你提供这个实现。DispatcherServlet 监听到来的 URL 请求,再决定应该实例化哪个 ActionBean,以及应该调用那个 ActionBean 上的什么方法。可以将 Dispatcher 看做是应用程序的“管理器”。当请求到达应用程序时,Dispatcher 会检查请求,再决定应该将这个请求委托给程序的哪部分负责处理。按照约定,一般将 DispatcherServlet 映射到*.action URL。
StripesFilter
StripesFilter 封装了程序要处理的所有 HTTP 请求。当直接请求一个 JSP 时,StripesDispatcher 就不会有机会运行,这时就得由 StripesFilter 负责为 JSP 和 ActionBean 提供一些 Stripes 的特定功能,二者的处理方式差不多是一样的。StripesFilter 可以执行对 multipart 类型的表单的处理、本地化选择、flash scope 管理( [3] )以及 last stop 异常处理。
ActionBean
当编写 ActionBean 时,就可以真正看到 Stripes 的可贵之处。这个接口只需要为一个名为 context 的属性配备一个 getter 和 setter 方法,context 将是 ActionBeanContext 的一个实例。DispatcherServlet 使用 ActionBean 上的反射,以及 HTTP 请求参数和 ActionBean 中的标注,就可以决定应该运行什么方法。
除了 setContext()和 getContext()方法,ActionBean 还可以包含几个返回 Resolution 的方法,以及用于同视图进行交互的属性存取器(accessor)。稍后我们开始构建示例时,你就会明白这里说的这些概念是什么意思了。你的 ActionBean 不必进行类似 HttpRequest.getParameter()之类的调用,因为 Stripes 可以自动负责将请求参数绑定到对象。
视图
Stripes 使用 JSP 作为它的视图技术。当 ActionBean 将请求转发到 JSP 时,Stripes 会为 JSP 提供一个对该 ActionBean 的引用,以便可以用 JSTL 表达式语言来取出 ActionBean 中的数据。反之,在 JSP 中可以用 useActionBean 标签来调用某个 ActionBean 的事件处理器,以便为显示准备请求(例如通过格式化属性)。Stripes 也提供了一个简单的 JSP 标签库,来帮助链接应用程序的各个部分和提供表单。
[1] 参见 http://stripesframework.org/display/stripes/Stripes+vs.+Struts. [2] http://stripesframework.org/. [3] flash scope 是一个概念,其本质是临时储存一些属性给(并且仅给)下一个请求使用,使用过后便被清除掉。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论