Java replaceSelector和include文件之间的差异
我正在写Java replaceSelector和include文件之间的差异,java,jsp,sling,Java,Jsp,Sling,我正在写JSP代码,我已经将sling taglibs作为 <sling:defineObjects/> 包含外部文件的最佳方式是什么 有两种选择: 包含文件: 用作 这两种方法都可以正常工作,只是当我使用include file选项时,我在global.jsp中没有得到sling请求对象。我想知道更多的细节。因此,只有在特定的条件下,当您的全局文件与正在编写的jsp位于同一位置时,这才有效 第一个选项是在编译时内联包含global.jsp文件。这是固定的,如果您在global
JSP代码
,我已经将sling taglibs
作为
<sling:defineObjects/>
包含外部文件的最佳方式是什么
有两种选择:
这两种方法都可以正常工作,只是当我使用include file选项时,我在global.jsp中没有得到sling请求对象。我想知道更多的细节。因此,只有在特定的条件下,当您的全局文件与正在编写的jsp位于同一位置时,这才有效 第一个选项是在编译时内联包含global.jsp文件。这是固定的,如果您在global.jsp中更改了某些内容,它将不会被拉入到您重新编译这个servlet中 您列出的第二个选项是获取现有资源请求,并将选择器(如果有)更改为“全局”。然后,它将通过sling解析过程运行该选项,以确定要包含的文件 由于同一目录中的global.jsp将与您的请求相匹配,因此包含了它 有关更多详细信息,请参见示例部分,该部分将显示选择器如何指示要使用的jsp 注意:正如我提到的,这是有效的,因为在这种情况下,解析器解析全局。如果您试图添加的global.jsp位于不同的目录结构中,它将无法工作 现在回答你的具体问题,哪一个更好。视情况而定。如果您是在sling中开发的,那么sling include被认为是更好的选择,因为当标识的资源发生变化时,它的响应更好 我应该注意到,sling include的特定用法不是global.jsp的正常用法,因为全局文件通常位于固定位置,并且您希望使用该特定版本 sling include更常见的用法是指定路径和/或资源
选项2的有趣用法是,解析的实际文件与组件相关,并通过sling解析来确定,因此您可以扩展或覆盖此组件,并包含一个新的global.jsp以供使用。非常感谢等待的答案