在Adobe CQ5中是否有标准方法来获取当前页面URL以便在JSP的头部创建自动规范链接?
基本上我们有一个对话配置框,您可以在其中覆盖规范链接,但默认情况下,如果这是空的,我想根据当前请求的原始URL路径构建链接。
头部的JSP在所有请求中共享。
非常感谢
答案 0 :(得分:10)
${currentPage.path}
变量将为您提供当前资源的父页面路径,但您应该使用Externalizer将其转换为面向用户的好URL(即应用您拥有的任何映射规则)在适当的位置使用正确的域名,而不是服务器名称,例如prod-server-123
)
即
ResourceResolver resourceResolver = request.getResourceResolver();
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
String canonicalUrl = externalizer.publishLink(resourceResolver, "http", currentPage.getPath());
您可以通过Felix或通过存储库中的osgi:Config
节点自定义外部化工具视为基本网址的内容。并在官方docs on the Adobe site上阅读更多内容。
(注意,Externalizer是CQ5.5 +)