如何多次包含现有组件

How to include an existing component multiple times

我要创建一个需要重复使用现有组件 3 次的组件。 在我的组件的 JSP 文件中,我添加了以下内容,但在为我的组件创建模板然后为该模板创建页面时得到空白页。

<%@taglib prefix="cq" uri="http://www.day.com/taglibs/cq/1.0" %><%
%>
haha
<cq:include path="test" resourceType="/apps/help/components/relatedlinks" />
<cq:include path="test1" resourceType="/apps/help/components/relatedlinks" />
<cq:include path="test2" resourceType="/apps/help/components/relatedlinks" />

当您只添加 1 个组件然后在添加第二个组件引用时中断时是否有效?如果是这样,这很好地表明您的组件代码中有些东西不是独立的。例如,可能组件将属性添加到 Request 上下文而不只是 JSP 上下文,导致第二个实例抛出异常。在这种情况下,错误日志将是您的朋友——它应该指出异常是什么。要检查的事项包括:

  • 添加到请求上下文的变量,以及如果上下文中已存在此类变量则中断的相应代码。
  • 该组件包含的任何其他资源。也许问题不在于您包含三次的组件,而在于包含的组件本身包含的某些组件。
  • 组件依赖的东西。该组件是否为它使用的任何标签引用了必要的标签库?
  • 运行 代码组件中的 Scriptlet。将它们移动到标签并使用标签库从 JSP.
  • 中获取 Java 代码

您在此示例中添加的 JSP 代码在我看来还不错,因此实际上需要发布组件代码才能对特定的根本原因给出更详细的答案。