如何在Sling模型中访问AEM Core模型

时间:2017-11-28 16:49:36

标签: java aem sling

具体来说,我正在尝试启用.SVG文件以供核心图像组件使用。

现在我正在创建一个sling模型,理想情况下我想访问位于here的核心AEM组件接口中的getSrc()和getFileReference()类的返回值。

我是AEM开发和Sling模型的新手。我是否遗漏了一些让我这样做的重要功能?

这是我的代码,在这一点上可能没有任何帮助。

package com.site.core.models;

import com.adobe.cq.wcm.core.components.models.Image;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.models.annotations.*;
import org.apache.sling.models.annotations.injectorspecific.*;

import org.apache.sling.settings.SlingSettingsService;
import javax.jcr.Node;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.inject.Inject;

@Model(adaptables = SlingHttpServletRequest.class)
public class ImageModel {

    private String src = Image.getSrc(); 

    return src;

}

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,您所指的链接是一个界面,该界面的实现是here

为了使用您自己的实现,您有两种选择:

  1. 在图片组件html中,更改data-sly-use以引用您的impl:com.site.core.models.ImageModel

  2. 创建一个实现Image界面的单独模型,并为其提供高排名,而不是现有的impl。

  3.   

    免责声明:我没有测试#2,但documentation表明它可能。