【问题标题】:How to get HTTP header value in AEM Sightly/HTL如何在 AEM Sightly/HTL 中获取 HTTP 标头值
【发布时间】:2020-07-07 09:53:05
【问题描述】:

我有这个代码:

<div data-sly-list.myitem="${request.getHeaderNames}" data-sly-unwrap>
  <pre>[${myitem}] [${request.getHeader[myitem]}]</pre>
</div>

生成标题列表:

[Cookie] []
[Accept] []
[X-User-Agent-Type] []
[X-Request-ID] []
...
[X-Forwarded-For] []
[Accept-Language] []

为什么它得到标题名称,而不是值?我试过了

  • 引用的字符串名称 - ${request.getHeader['User-Agent']}
  • getHeader - ${request.getHeader[myitem]}
  • getHeaders - ${request.getHeaders[myitem]}

如何获取模板中的标头值?

(AEM 6.3)

【问题讨论】:

    标签: aem sling sightly


    【解决方案1】:

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

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

    1. 创建您自己的辅助使用对象,该对象接受请求并将标头包装在Map&lt;String, List&lt;Object&gt;&gt; getAllHeaders() 中。然后你可以将它抓取为:${helper.allHeaders['Accept']}

    2. 创建您自己的帮助程序来获取请求并提取某个标头:&lt;sly data-sly-use.helper="${Helper @ header='Accept'}"&gt;${helper.headerValue}&lt;/sly&gt;

    【讨论】:

    • 我总是忘记这一点。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    相关资源
    最近更新 更多