3

我们正在 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 标记库包。我们也尝试上传 2.2.4 版本,但没有帮助。

如果adapto标签可用,有人可以指导一下吗?

4

1 回答 1

4

在尝试帮助同事调试类似问题时偶然发现了这一点。起初,我能够通过从Doc 页面复制段来复制这种行为(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,它起作用了。

于 2016-04-14T18:10:38.053 回答