引言
Struts 是一个很受欢迎的开放源代码平台基础,它是为了使复杂的 Web 应用程序的创建和维护更加轻易而设计的。Struts 框架支持模型-视图-控制器(Model-View-Controller,MVC)模型,并且提出了许多重要的应用程序设计和实现需要注重的事项。为了能够在门户应用程序中实现页面导航,WebSphere® Portal V5 提供了一些标记,在开发典型 portlet 和 Struts portlet 时可将这些标记用于 JavaServer Pages(jsp)。本文重点讨论 Struts 框架创建多模块的能力,并通过一个样本 Struts portlet 应用程序为您介绍如何采用 JSP 实现页面导航方法。
我们将关注以下两种互补的方法:
如何使用在 WebSphere Portal 中可用的某一 JSP 标记来从 JSP 实现页面导航
我们将会看到一个样本应用程序,包括开发环境和门户资源的屏幕快照,以及页面导航方法的代码样本。
如何使用 Struts portlet 框架中内置的多模块支持来组织 Web 导航方案
我们将会看到一些代码样本,它们阐述了如何使用页面导航特征来执行在门户环境中转换的多个 Struts 模块。
本文假定您已基本了解 Struts 应用程序,包括如何在 WebSphere Studio Application Developer 中创建 Struts 应用程序、如何将 Struts 作为 portlet 进行部署,同时也了解 WebSphere Portal 中的门户资源。(要获得这些方面的更多信息,请参见参考资料。)
在开发和部署我们的样本应用程序时用到了以下产品:
WebSphere Portal V5.x
WebSphere Application Server v5.x
支持 Struts Version 1.1 的 WebSphere Studio Application Developer v5.0.1 (下面称为 Application Developer)。
本文所讲解的用于实现页面导航的开发任务可同时用于标准 portlet 和 Struts portlet。
应用程序概述
在样本应用程序中,我们将会使用位于三个不同页面的三个 portlet。当用户选择其中某一 portlet 中的链接时,该用户会被定向到另一个页面,其中驻留着另一个 portlet。在整个文章中我们开发和提到的示例都会利用多 Struts 模块将 WebSphere Portal 页面导航标记并入门户环境中每个模块本身的 JSP 文件中。图 1 概括性地展示了样本应用程序将如何工作;为了把重点放在理解这些方法上,我们特意简化了样本应用程序。在本文的后面我们将会提供给用程序的细节。
图 1. 样本应用程序的高级视图
构建导航结构
WebSphere Portal 提供了自己的 JSP 标记来供 portlet JSP 使用。其中的一个标记,<WPS:URLGeneration attribute="value"/>,是用于创建到门户任何地方的页面链接的。我们使用该标记中一个属性,contentNode="idname",来创建到不同页面的 URL,以便构建导航结构。该属性利用一个惟一的标识符(内容节点的名称)来指定可以从中找到该 portlet 的页面。(关于这一标记的更多信息请参见参考资料。)
在 WebSphere Portal 中选择 Administration => Portal Settings => Custom Unique Names。我们使用 Custom Unique Names 治理 portlet 来获取为 contentNode 属性指定的门户资源的惟一标识符。治理员可以使用 Custom Unique Names portlet 来查看惟一标识符并为门户资源分配(让人易读的)自定义名称。图 2 显示了这些已配置的样本页面的惟一标识符和自定义名称:
Struts_Test
Struts_Receiver
Struts_Receiver_2