Struts Portlet 发行说明

© Copyright International Business Machines Corporation 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

发行说明

1.0 局限性
   1.1 Struts Portlet 工具对 Struts 模板标记的支持并不完善
   1.2 Struts Portlet 工具不支持开发 Struts Tiles Portlet
2.0 已知问题与变通方法
   2.1 导入的 Struts Portlet 样本可能会发生“未定义目标运行时”错误
   2.2 动态页面模板支持不适用于 Struts Tiles Portlet 项目

1.0 局限性

1.1 Struts Portlet 工具对 Struts 模板标记的支持并不完善

在开发 Struts Portlet 项目时,您应该知道,Struts Portlet 工具对 Struts 模板标记的支持并不完善。

  1. 在将 Struts 模板标记从选用板添加到 Web 页面时,此工具将为用户错误地生成 Struts Web taglib 伪指令:
    <%@taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template"%>
    而不是生成以下正确的 Struts Portlet 模板 taglib 伪指令:

    <%@taglib uri="http://struts.apache.org/tags-template" prefix="template"%>

    更正该页面的 taglib 伪指令并不能解决此问题,以后添加模板标记时,仍将添加不正确的 taglib 伪指令。
  2. 在 Page Designer 中,无法对 Struts 模板标记进行可视化。 

1.2 Struts Portlet 工具不支持开发 Struts Tiles Portlet

目前,Struts Portlet 工具不支持开发 Struts Tiles Portlet,但却提供了 Struts Tiles Portlet 样本(IBM 和 JSR168)。您可以将这些样本导入到工作空间中,以帮助将 Portlet 配置为使用 Portlet 应用程序中的 Tiles。

注意:在 Struts Portlet 项目中开发 Tiles 可能会导致添加动态模板支持(Struts Tiles)项目构面。这将导致部署 Portlet 时发生问题。请参阅已知问题与变通方法,以获取更多信息。

2.0 已知问题与变通方法

2.1 导入的 Struts Portlet 样本可能会发生“未定义目标运行时”错误

将 Struts Portlet 样本(IBM 或 JSR168)导入工作空间后,导入的 Struts Portlet 样本可能会发生“未定义目标运行时”错误。根据工作台配置以及机器上安装的服务器的不同,项目可能会发生错误:“未定义 WebSphere® Portal V6.0 目标运行时”。这意味着工作台的服务器列表未包含 WebSphere Portal V6.0。

变通方法
在处理样本前,必须设置项目的目标服务器运行时:

  1. 确保有适当的目标服务器可用。
    • 可以通过设置首选项来查看和修改可用服务器列表(窗口 > 首选项服务器 > 已安装的运行时)。
    • 查找“WebSphere Portal V6.0 存根”。此运行时应该随产品的门户网站工具功能部件一起安装。如果找不到,请单击添加按钮以添加 WebSphere Portal V6.0 运行时。
  2. 选择导入的项目,然后使用上下文菜单来打开项目属性。
  3. 选择目标运行时。应该会有与该项目匹配的可用目标运行时列表。
  4. 单击确定。 
  5. 对于随样本一起导入的 EAR 项目,重复以上步骤。
设置目标运行时后,请重建该项目以除去错误,然后可以进行部署:
  1. 要重建该项目,请单击项目 > 清除 > 清除所有项目清除选择的项目,然后单击确定。注意:某些样本包含错误。
  2. 要部署包含错误的样本,必须设置首选项并选中允许在服务器上发布包含错误的应用程序复选框(窗口 > 首选项 > 服务器 > WebSphere)。 
  3. 单击确定
  4. 要部署该项目,请选择该项目(而不是选择 EAR 项目),然后单击运行方式 > 在服务器上运行。请确保选择同一类型的服务器作为目标运行时。

2.2 动态页面模板支持不适用于 Struts Tiles Portlet 项目

在处理 Struts Tiles Portlet 时,可能会导致安装动态页面模板支持(Struts Tiles)项目构面。添加动态页面模板支持(Struts Tiles)项目构面是一种在动态 Web 项目中处理 Struts Tiles 的简便方法,但此方法不适用于 Struts Portlet 项目。如果已安装该构面,则将导致在部署时发生运行时错误。此外,在使用选用板来将 Tiles 标记添加到 Struts Portlet JSP 时,会导致添加不正确的 taglib 伪指令。

变通方法:如果正在开发 Struts Tiles Portlet,则应该在部署前执行下列操作:

  1. 确定是否已安装了动态页面模板支持(Struts Tiles)项目构面。可以通过选择“项目属性”>“项目构面”来进行检查。
  2. 如果已安装该构面,则请除去其他 servlet 并配置已添加到项目中的文件条目:
    • 在部署描述符编辑器中打开 web.xml 文件。然后,在 Servlet 选项卡上,除去 TilesServlet 条目并保存文件。
    • 在 Struts 配置文件编辑器中,打开 struts-config.xml 文件。然后,在“插件”选项卡上,除去 org.apache.struts.tiles.TilesPlugin 条目并保存文件。
      注意:从“项目构面”页面中除去动态页面模板支持(Struts Tiles)项目构面并不会除去上述条目。最好让该项目构面条目留在列表中。
  3. 对于每个包含 Tiles 标记的 JSP,检查是否使用了 Struts Portlet Tiles taglib 伪指令。如果未使用,则执行以下操作(适用于 WPS V6.0 Struts Tiles Portlet):
    • 将:<%@taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>
    • 替换为:  <%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>