2015-06-09 44 views
1

我将创建一个需要重复使用现有组件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" /> 
+0

不知道我是否正确理解你,但我看到的一个错误是/ apps /。 ResourceTypes只是后面的部分。所以在你的情况只有resourceType =“帮助/组件/ relatedlinks” – Thomas

+0

也很高兴看到这个组件 –

+0

如果你能告诉我们问题是什么,Wold会很好。似乎Shawn在接受他的答案时有一个好点:)让社区知道你是如何解决你的问题的! – PaMaDo

回答

0

当您只添加1个组件然后打破添加第二个组件参考的时候,它是否工作?如果是这样,那么这是一个很好的迹象表明组件代码中有某些内容不是独立的。例如,组件可能会向Request上下文添加一个属性,而不仅仅是JSP上下文,导致第二个实例抛出异常。在这种情况下,错误日志将成为你的朋友 - 它应该查明异常是什么。需要检查的内容包括:

  • 添加到请求上下文中的变量以及在上下文中已存在此类变量时会中断的相应代码。
  • 该组件包含的任何其他资源。也许这个问题不在于你包含三次的组件,而是包含一个包含它的组件。
  • 组件依赖的东西。组件是否为其使用的任何标签引用必要的标签库?
  • 运行代码的组件中的Scriptlets。将它们移动到标记并使用标记库将Java代码从JSP中移出。

你在这个例子中放入的JSP代码对我来说看起来很不错,所以实际上它需要发布组件代码以给出对特定根本原因更详细的答案。