CQ5 SlingServlet 和 resourceTypes 不适用于特定资源路径
CQ5 SlingServlet and resourceTypes not working for specific resource paths
如果我定义一个Sling Servlet如下:
@SlingServlet(
label="TestResourceTypeServlet",
name = "com.company.project.servlets.TestResourceType",
extensions = {"bob"},
resourceTypes= {"cq:Page"},
methods= {"GET"},
metatype=true)
@Properties({
@Property(name = "service.description", value = "A test servlet"),
@Property(name = "service.vendor", value = "Company")
})
servlet 接收任何对扩展名为“.bob”的页面的 get 请求,这很好,但我真正想要的是处理对特定页面类型的请求,
SO
我修改resourceTypes为read
resourceTypes= {"site-administration/components/page/page-distribution"},
提供的值是我尝试使用 .bob 扩展名访问的页面的特定 sling:resourceType(从 CRXDE Lite 复制并粘贴),但我得到 404!!!
我读过的所有文档都说上面的方法应该有效,但实际上没有。
出于绝望,我什至尝试了 "site-administration/components/page"
,这是我想要的页面的超级类型。
我是 运行 一个干净的 5.6.1 实例,这个 servlet 作为 OSGi 包的一部分。
我是否遗漏了一些明显的东西,或者如果没有,是否有人知道可以解决此问题的任何修补程序?
任何帮助将不胜感激,因为我的脑袋开始有点发疯了。
编辑
好的,所以我更进一步:如果我访问该页面:
[path-to-page]/page.bob.html
servlet 触发。但是在这个 URL 中 bob
不是选择器吗?如果是这样,为什么当资源类型为 cq:Page
时配置是否可以使用 bob 作为扩展?
很困惑:-S
我显然在这里遗漏了一些非常简单的东西。
页面的问题是 resourceType 存储在 cq:Page 节点下方的 jcr:content 节点上。如果您调用 [path-to-page]/_jcr_content.bob
它应该可以工作。注意:_jcr_content
是 jcr:content
.
的 url 保存版本
为什么你的最后一个例子实际上有效,我不知道。
如果我定义一个Sling Servlet如下:
@SlingServlet(
label="TestResourceTypeServlet",
name = "com.company.project.servlets.TestResourceType",
extensions = {"bob"},
resourceTypes= {"cq:Page"},
methods= {"GET"},
metatype=true)
@Properties({
@Property(name = "service.description", value = "A test servlet"),
@Property(name = "service.vendor", value = "Company")
})
servlet 接收任何对扩展名为“.bob”的页面的 get 请求,这很好,但我真正想要的是处理对特定页面类型的请求,
SO
我修改resourceTypes为read
resourceTypes= {"site-administration/components/page/page-distribution"},
提供的值是我尝试使用 .bob 扩展名访问的页面的特定 sling:resourceType(从 CRXDE Lite 复制并粘贴),但我得到 404!!!
我读过的所有文档都说上面的方法应该有效,但实际上没有。
出于绝望,我什至尝试了 "site-administration/components/page"
,这是我想要的页面的超级类型。
我是 运行 一个干净的 5.6.1 实例,这个 servlet 作为 OSGi 包的一部分。
我是否遗漏了一些明显的东西,或者如果没有,是否有人知道可以解决此问题的任何修补程序?
任何帮助将不胜感激,因为我的脑袋开始有点发疯了。
编辑
好的,所以我更进一步:如果我访问该页面:
[path-to-page]/page.bob.html
servlet 触发。但是在这个 URL 中 bob
不是选择器吗?如果是这样,为什么当资源类型为 cq:Page
时配置是否可以使用 bob 作为扩展?
很困惑:-S
我显然在这里遗漏了一些非常简单的东西。
页面的问题是 resourceType 存储在 cq:Page 节点下方的 jcr:content 节点上。如果您调用 [path-to-page]/_jcr_content.bob
它应该可以工作。注意:_jcr_content
是 jcr:content
.
为什么你的最后一个例子实际上有效,我不知道。