Struts 用户指南(四)

ZDNet软件频道 时间:2003-01-07 作者:李锟 译 -转自我要评论()
本文关键词:struts
本系列文章系统的介绍了Struts 的体系结构以及Struts 组件的创建和使用。本节将介绍Controller 组件。
4. 创建Controller组件

4.1 概述
现在我们理解了怎样构造你的应用程序的Model和View组件,现在是集中到 Controller 组件的时候了。struts包括一个实现映射一个请求URI到一个行为类的主要功能的servlet。因此你的与Controller有关的主要责任是:

  • 为每一个可能接收的逻辑请求写一个 Action 类(也就是,一个 Action 接口的实现)
  • 写一个定义类名和与每个可能的映射相关的其它信息的ActionMapping 类(也就是,一个 ActionMapping 接口的实现)
  • 写行为映射配置文件(用XML)用来配置controller servlet。
  • 为你的应用程序更新web应用程序展开描述符文件(用XML)用来包括必需的struts组件。
  • 给你的应用程序添加适当的struts组件。

4.2 Action类
Action 接口定义一个单一的必须由一个 Action 类实现的方法,就象下面这样:

public ActionForward perform(ActionServlet servlet,
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException;

一个 Action 类的目标是处理这个请求,然后返回一个标识JSP页面的 ActionForward 对象,控制应该重定向这个JSP页面以生成相应的响应。在 Model 2 设计模式中,一个典型的 Action 类将在它的 perform() 方法中实现下面的逻辑:

验证用户session的当前状态(例如,检查用户已经成功地注册)。如果 Action 类发现没有注册存在,请求应该重定向到显示用户名和口令用于注册的JSP页面。应该这样做是因为用户可能试图从“中间”(也就是,从一个书签)进入你的应用程序,或者因为session已经超时并且servlet容器创建了一个新的session。

如果验证还没有发生(由于使用一个实现 ValidatingActionForm 接口的form bean),验证这个 form bean 的属性是必须的。如果发现一个问题,当作一个请求属性保存合适的出错信息关键字,然后将控制重定向回输入表单这样错误可以被纠正。

执行要求的处理来处理这个请求(例如在数据库里保存一行)。这可以用嵌入 Action 类本身的代码来完成,但是通常应该调用一个商业逻辑bean的一个合适的方法来执行。
更新将用来创建下一个用户界面页面的服务器端对象(典型情况下是request范围或session范围beans,定义你需要在多长时间内保持这些项目可获得)。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134