我们正在AEM 6.0中尝试一个样本吊索模型实现。
没有导入的吊索模型类是这样的:
@Model(adaptables = Resource.class)
public class Header {
@Inject
private String link;
@Inject
private String text;
public String getLink() {
return link;
}
public String getText() {
return text;
}
}
使用以下代码行
在jsp中调用sling模型<sling:adaptTo adaptable="${resource}" adaptTo="com.mysite.models.Header" var="model"/>
<h2>${model.link}</h2>
<h2>${model.text}</h2>
但是我们收到以下错误:
No tag "adaptTo" defined in tag library imported with prefix "sling"
我们使用以下语句导入了taglib:
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %>
最初,存在2.2.0版本的Apache Sling JSP Tag Library软件包。我们也试过上传2.2.4版本,但它没有帮助。
如果adapTo标签可用,还有其他人可以指导吗?
答案 0 :(得分:3)
在试图帮助同事调试类似问题时偶然发现了这一点。起初,我可以通过复制Doc page中的段来复制此行为(AEM 6.1):
<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.api.resource.ValueMap" var="myProps" />
我在本地发现的是我们的自定义global.jsp
文件在/libs/foundation/global.jsp
引用了旧的预花岗岩版本。在该文件中,我看到它有<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %>
。作为快速测试,我在最后删除了/1.0
并刷新了页面和BAM,它起作用。