我是 SlingModels 的新手,注释还不是很清楚。我目前正在尝试将一些基本基础组件从 AEM 6.2 转换为使用 SlingModels。
对于图像组件,基础 JSP 使用 SlingHttpServletRequest 来设置 ImageDoctype。所以我尝试了以下方法:
@Model(adaptables = {Resource.class})
public class ImageModel {
@SlingObject
private SlingHttpServletRequest request;
@SlingObject
private Resource resource;
}
但有了这个request
一片空白。所以我改用:
@Model(adaptables = {SlingHttpServletRequest.class})
现在适用于reuqest
and resource
JSP代码:
<sling:adaptTo adaptable="${slingRequest}" adaptTo="models.ImageModel" var="m"/>
这是正确的做法还是有办法适应resource
并且仍然能够注入request
?
您不能这样做,因为资源无法识别 SlingHttpServletRequest。如果您的模型中需要 Request,请使其适应 Request。
有一些图书馆允许这样做。它使用 Filter 将当前请求存储在 ThreadLocal 中,然后从中读取它,但我不推荐这种方法。 ThreadLocal 只是另一个全局。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)