如何在AEM/HTL中获取HTTP头值

如何在AEM/HTL中获取HTTP头值,aem,sling,sightly,Aem,Sling,Sightly,我有以下代码: <div data-sly-list.myitem="${request.getHeaderNames}" data-sly-unwrap> <pre>[${myitem}] [${request.getHeader[myitem]}]</pre> </div> 为什么它得到的是标题名,而不是值?我试过了 带引号的字符串名称-${request.getHeader['User-Agent']} getHe

我有以下代码:

<div data-sly-list.myitem="${request.getHeaderNames}" data-sly-unwrap>
  <pre>[${myitem}] [${request.getHeader[myitem]}]</pre>
</div>
为什么它得到的是标题名,而不是值?我试过了

  • 带引号的字符串名称-
    ${request.getHeader['User-Agent']}
  • getHeader-
    ${request.getHeader[myitem]}
  • getHeaders-
    ${request.getHeaders[myitem]}
如何在模板中获取标题值


(AEM 6.3)

不幸的是,直接从HTL获取特定的头值并不方便,因为您无法使用参数调用方法

您可以采用以下方法之一:

  • 创建自己的helper use对象,该对象接受请求并将标题包装到
    映射getAllHeaders()
    中。然后您可以将其作为:
    ${helper.allHeaders['Accept']}

  • 创建您自己的助手,以获取请求并提取特定的头:
    ${helper.headerValue}


  • 我总是忘记这件事。谢谢
    [Cookie] []
    [Accept] []
    [X-User-Agent-Type] []
    [X-Request-ID] []
    ...
    [X-Forwarded-For] []
    [Accept-Language] []