创建简单的 Struts 应用程序

本文档详细描述了如何创建具有两个 Web 页面、一个操作映射和一个表单 bean 的简单 Struts 应用程序。

在开始此任务之前,确保您处于 Web 透视图中。如果您未处于 Web 透视图中,则单击窗口 > 打开透视图 > 其它 > Web

假设您想要创建这样的一个应用程序:它具有一个接受年月日作为输入的 Web 页面和一些用来处理数据以计算星期几的代码。如果输入有效,则计算的值显示在输出 Web 页面上;如果输入无效,则一条错误消息显示在输入页上。图 1 显示这样的应用程序的 Web 图。

图 1. 要创建的简单应用程序的 Web 图
一个输入 JSP 文件、一个输出 JSP 文件和一个 dateData 表单 bean,每个都连接至中间的 Struts 操作映射

在该图中,index.jsp 表示输入 JSP 文件,output.jsp 表示输出 JSP 文件,dateData 表示存储输入和输出数据的表单 bean,/computeDay 表示在提交输入时将运行并且其输出将定向至 output.jsp 的操作码的 computeDay 操作映射。该操作码计算指定的日期是星期几。表 1 显示输入和输出字段。

表 1. 输入和输出字段
字段名称 文件名 描述
year index.jsp 四位数字的年份
month index.jsp 两位数字的月份
day index.jsp 两位数字的日期
dayOfWeek output.jsp 表示星期几的字符串

在此应用程序中,“模型-视图-控制器”设计模式的视图由两个 JSP 文件组成。控制器由 computeDay 操作映射和 dateData 表单 bean 组成。因为没有涉及除用户输入之外的数据库或数据源,所以模型不存在。

要创建上面所述的 Struts 应用程序,完成下列步骤:

  1. 创建支持 Struts 的动态 Web 项目
    1. 从主菜单中单击文件 > 新建 > 动态 Web 项目
    2. 在“动态 Web 项目”页上,输入项目的名称(例如,DayOfWeek),然后单击下一步
    3. 在“功能部件”页上,确保选择了 Struts 框,并单击下一步
    动态 Web 项目文件夹中创建了启用了 Struts 的 Web 项目,在 DayOfWeek 项目文件夹中创建了名为 diagram.gph 的 Web 图。
  2. 在“项目资源管理器”中,单击动态 Web 项目 > DayOfWeek,单击 + 以展开该条目,然后双击 Web 图 Web 图编辑器打开 diagram.gph
  3. 在 Web 图编辑器中,右键单击并选择对齐 > 显示网格 以显示对齐网格。(请参阅编辑 Web 应用程序图 - 概述。)
  4. 右键单击并选择对齐 > 对齐网格
  5. 编辑该 Web 图以便它类似于图 1,只是此时节点将显示为灰色,这指示这些节点尚未实现)。
    1. 创建名为 index.jspoutput.jsp 的 Web 页面节点,名为 computeDay 的操作映射节点和名为 dateData 的表单 bean 节点。有关如何完成此任务的详细信息,请参阅在 Web 图中绘制节点 这就将节点信息添加至 diagram.gph 文件,但并不实现节点。
    2. 创建下列连接(请参阅在 Web 图中绘制连接):
      • 从 index.jsp 至 /computeDay
      • 从 /computeDay 至 output.jsp(连接类型为局部转发,标注设置为成功
      • 从 /computeDay 至 dateData
      • 从 /computeDay 至 index.jsp(连接类型为全局转发,标注设置为失败
      这就将更多信息添加至 diagram.gph 文件。您的图现在应该类似于图 2
      图 2. 包含未实现的节点的 Web 图
      一个输入 JSP 文件的灰色图像、一个输出 JSP 文件和一个 dateData 表单 bean,每个都连接至中间的 Struts 操作映射
    3. 单击文件 > 保存以保存文件。
  6. 创建 Struts 表单 bean。
    1. 在 Web 图编辑器中,双击 dateData 表单 bean 图标。
    2. 在“新建表单 bean”页上单击下一步
    3. “为 ActionForm 类选择新字段”页上,选择 DayOfWeek 框并单击下一步
    4. 在“为 ActionForm 类创建新字段”页上单击添加并指定表 2 中的每个字段。然后单击完成
      表 2. 要添加至 dateData 表单 bean 的字段
      名称 类型
      year int
      month int
      day int
      dayOfWeek String
      DayOfWeek\JavaSource 目录中创建了名为 DateData.java 创建了文件(项目资源管理器中的 DayOfWeek > JavaSource > (default package)),在 DayOfWeek\JavaSource\dayofweek\resources 中创建了 ApplicationResources.properties 文件(项目资源管理器中的 DayOfWeek > JavaSource > dayofweek.resources),并且 Java™ 编辑器将打开 DateData.java
    提示: 在创建使用表单 bean 的 JSP 页之前创建表单 bean 使您在创建 JSP 页时不必重新输入字段名。
  7. 专门为简单的应用程序编辑表单 bean 源文件和 Java 资源文件。
    1. 编辑 DateData.java 文件,在接近文件底部的 ActionErrors errors = new ActionErrors(); 的后面插入以下代码:
      if (year < 1582)
      {
       errors.add("year",new org.apache.struts.action.ActionError("pre_gregorian"));
      }
    2. 保存并关闭该文件。
    3. 在“项目导航器”中,单击 JavaSource > com.ibm.dayofweek.resources,然后双击 ApplicationResources.properties。编辑文件,取消对 errors.headererrors.footer 行的注释,并将以下一行添加到文件中的任何地方:
      pre_gregorian=<li>Date is before 1582, the year the Gregorian calendar began</li>
    4. 保存并关闭该文件。
  8. 从 Web 图中创建名为 index.jsp 的 JSP 文件。
    1. 双击 index.jsp 图标。
    2. 在“JSP 文件”页上,确保“模型”字段为 Struts JSP 并选择了配置高级选项框。然后单击下一步
    3. 在下列页上单击下一步
      • 标记库
      • JSP 文件
      • JSP 文件
    4. 在“表单字段选择”页上表单 bean 条目下拉菜单中,单击 dateData。然后选择 yearmonthday 框,确保选择了在表单中生成字段框,然后单击完成 这就在 Web content 文件夹中创建了 index.jsp 文件。
    5. 如果标注不是按 year - month - day 的顺序排列的,则单击、编辑 JSP 文件以创建该顺序并保存该文件。
    6. 单击文件 > 关闭以关闭该文件。
  9. 创建名为 output.jsp 的 JSP 文件。
    1. 双击 output.jsp 图标。
    2. 在“JSP 文件”页上,确保“模型”字段为 Struts JSP 并选择了配置高级选项框。然后单击下一步
    3. 在下列页上单击下一步
      • 标记库
      • JSP 文件
      • JSP 文件
    4. 在“表单字段选择”页上表单 bean 条目下拉菜单中,单击 dateData。然后选择 dayOfWeek 框,取消选择在表单中生成字段框,然后单击完成 在 Web content 文件夹中创建了一个 output.jsp 文件。
    5. 保存并关闭该文件。
  10. 创建 Struts 操作和操作映射。
    1. 在 Web 图编辑器中,双击 /computeDay 图标。
    2. 在“新建操作映射”页上单击完成 一个操作映射将添加至 Struts 配置文件(struts-config.xml),并在 DayOfWeek\JavaSource\com\ibm\dayofweek\actions 中创建了名为 ComputeDayAction.java 的文件,并且在 Java 编辑器中打开该文件。
    3. 编辑该文件使它与简单 Struts 应用程序中操作的源代码中的代码相匹配。
    4. 保存该文件并关闭它。 将编译文件 ComputeDayAction.java 以生成 ComputeDayAction.class 文件,该文件在项目导航器的 Web content 文件夹中显示 WEB-INF > > dayofweek > 操作图 3 显示 Web 图所应该有的外观。注意,节点现在是彩色的,这指示它们已实现。
      图 3. 包含已实现的节点的 Web 图
      一个输入 JSP 文件、一个输出 JSP 文件和一个 dateData 表单 bean,每个都连接至中间的 Struts 操作映射
    5. 保存并关闭 diagram.gph 文件。
  11. 测试 Struts 应用程序。
    1. 在“项目导航器”中,右键单击 index.jsp 并选择在服务器上运行 服务器选择窗口出现。
    2. 服务器类型字段中,单击 WebSphere 版本 5.1 > 测试环境 > 完成 这会显示输入的 index.jsp 文件。
    3. 填充 yearmonthday 字段,例如,2001911
    4. 单击提交 图 4 显示输出。
      图 4. 简单 Struts 应用程序的输出
      Day of week: Tuesday

相关概念
Struts 和模型-视图-控制器模式
基于 Struts 的 Web 应用程序
Web 透视图

相关任务
使用 Struts 创建体系结构良好的 Web 应用程序
创建动态 Web 项目
创建 Web 图
编辑 Web 应用程序图 - 概述
创建 Struts 表单 bean
创建 JavaServer Pages(JSP)文件
创建 Struts 操作
测试 Struts 应用程序

相关参考
Web 图编辑器的 Struts 首选项
简单 Struts 应用程序中操作的源代码

使用条款 | 反馈
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.