跳至内容 Java Solaris 社区 Sun 商店 加入 SDN 我的个人档案 加入的益处
 
如何在 Portlet 应用程序中实现页面导航
作者:Sherry Zhou,2006 年 2 月  
在 Java Studio Creator IDE 中,开发 Portlet 应用程序的过程与开发 Web 应用程序的过程类似。但是,在 Portlet 环境中某些组件的行为会有所不同,这意味着您必须采用不同的方式实现页面导航。确切地说,您必须使用页面导航编辑器来设置组件的操作属性,而在 Web 应用程序中,则需要设置其 URL 属性。此技术提示介绍了如何使用几种不同的组件来指定页面导航。
 
目录
 
使用超级链接和 Breadcrumbs 组件实现页面导航
使用树组件实现页面导航
使用警报组件实现页面导航
小结
 
使用超级链接和 Breadcrumbs 组件实现页面导航

请按照以下步骤在 IDE 中创建一个新的 Portlet 项目,并在 Portlet 应用程序中实现页面导航:将超级链接和 Breadcrumbs 组件添加到 Portlet 页面上,然后使用页面导航编辑器定义导航。

  1. 在 IDE 中创建一个新的 Portlet 项目。此操作创建的项目将包含一个页面。

  2. 为该项目创建第二个 Portlet 页面(名为 PortletPage2.jsp)。

  3. 将一个“超级链接”组件拖放到第一个 Portlet 页面 PortletPage1 上(具体实现方法是:将“超级链接”组件拖放到页面的编辑区域中,或者拖放到“概要”窗口的 "PortletPage1" 节点上)。将此“超级链接”组件的 text 属性更改为 Next Page。

  4. 将一个 "Breadcrumbs" 组件(位于组件面板的“组合”类别中)拖放到第二个 Portlet 页面 PortletPage2 上。

  5. 在 Portlet 应用程序中第一次创建 "Breadcrumbs" 组件时,该组件不会自动填充缺省超级链接,这一点与在 Web 应用程序中第一次创建 "Breadcrumbs" 组件不同。因此,您必须为 "Breadcrumbs" 组件添加超级链接:

    • 将组件面板中的一个“超级链接”组件拖放到“概要”窗口中 "PortletPage2" 节点下的 "breadcrumbs1" 节点。“概要”窗口应该会在该页面 "breadcrumbs1" 节点的下方显示一个 "hyperlink1" 节点。如果未显示,请单击该页面编辑区域中的 "breadcrumbs1" 组件,应会出现一个“超级链接”组件。将此“超级链接”组件的 text 属性更改为 Page1。现在 PortletPage1 应该如下图所示:

      portletpage1

    • 再次将组件面板中的一个“超级链接”组件拖放到“概要”窗口中 "PortletPage2" 节点下的 "breadcrumbs1" 节点。将此“超级链接”组件的 text 属性更改为 Page2。完成后,PortletPage2 应该如下图所示:

      portletpage2

  6. 打开页面导航编辑器。该编辑器将显示应用程序的两个页面(PortletPage1.jsp 和 PortletPage2.jsp)。

  7. 单击“导航”窗口中的 "PortletPage1.jsp" 图标以将其展开,然后从 "hyperlink1" 拖动一条连线到 "PortletPage2.jsp"。将此连线的名称由 case1 更改为 Page2。

  8. 单击“导航”窗口中的 "PortletPage2.jsp" 图标以将其展开,然后从 "hyperlink1" 拖动一条连线到 "PortletPage1.jsp"。将此连线的名称由 case1 更改为 Page1。“页面导航”窗口应该如下图所示:

    导航编辑器

  9. 运行并部署 Portlet。浏览器将显示 PortletPage1,您应该看到 "Next Page" 超级链接。单击 "Next Page" 超级链接,Apache Pluto 门户服务器将显示 PortletPage2。单击 "Page2" 超级链接可返回到 PortletPage1。
使用树组件实现页面导航

请执行以下步骤,利用树组件在 Portlet 页面之间设置导航。

  1. 与前面一样,创建一个包含两个 Portlet 页面(PortletPage1.jsp 和 PortletPage2.jsp)的新 Portlet 项目。

  2. 将一个“树”组件拖放到 PortletPage1 页面上。

  3. 在“概要”窗口中,右键单击 "tree1" 节点下的 "treeNode1: 树节点 1",然后从上下文菜单中选择“编辑 action 事件处理程序”。

    action 处理程序

  4. 在 Java 源代码编辑器中,将 return null 行更改为 return "page2"。现在 treeNode1_action 事件处理程序应该返回字符串 "page2" 而不是 null。

  5. 打开 PortletPage2.jsp 页面。将一个“标签”组件拖放到页面的编辑区域中,并将其 text 属性更改为 Page2。

  6. 打开页面导航编辑器。请注意,该编辑器将显示应用程序的两个页面(PortletPage1.jsp 和 PortletPage2.jsp)。

  7. 从 "PortletPage1.jsp" 拖动一条连线到 "PortletPage2.jsp"。将此连线的名称由 case1 更改为 page2。

  8. 运行并部署 Portlet。浏览器将显示 PortletPage1,您应该看到树节点。单击“树节点 1”,Apache Pluto 门户服务器将显示 PortletPage2。
使用警报组件实现页面导航
  1. 创建一个包含两个 Portlet 页面(PortletPage1.jsp 和 PortletPage2.jsp)的新 Portlet 项目。

  2. 将一个“警报”组件(位于组件面板的“组合”类别中)拖放到第一个 Portlet 页面 PortletPage1.jsp 上。

  3. 将此“警报”组件的 summary 属性设置为 "Data was not entered properly",并将其 detail 属性设置为 "Some Data is missing"。此外,还应将其 linkText 属性设置为 "Click here for detail"。PortletPage1 应该如下图所示(在编辑区域中):

    警报组件

  4. 右键单击“警报”组件,然后从上下文菜单中选择“编辑 action 事件处理程序”。

  5. 在 Java 源代码编辑器中,将返回 null 的 alert1_action 方法代码行更改为返回字符串 "detail"。

  6. 打开 PortletPage2.jsp 页面,将一个“标签”组件拖放到编辑区域中。将其 text 属性更改为 Detail。

  7. 打开页面导航编辑器,该编辑器将显示应用程序的两个页面(PortletPage1.jsp 和 PortletPage2.jsp)。

  8. 从 "PortletPage1.jsp" 拖动一条连线到 "PortletPage2.jsp"。将此连线的名称由 case1 更改为 detail。

  9. 运行并部署 Portlet。浏览器将显示 PortletPage1,您应该会看到警报组件。选择 "Click here for detail"(指向 PortletPage2 的链接)时,Apache Pluto 门户服务器将显示 PortletPage2。
小结

在此技术提示中,您了解了如何通过页面导航编辑器使用超级链接和 Breadcrumbs 组件、树组件以及警报组件来指定页面导航。

有关开发 Portlet 应用程序的详细信息,请参见学习页面上的 Portlet 教程。