AEM 6.3 - 吊带模型不起作用

时间:2017-10-10 01:34:50

标签: aem sling htl

我使用的是非常基本的Sling Model类,它根本不起作用。这是班级:

package com.aem.sites.models.test;

import org.apache.sling.models.annotations.Model;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.PostConstruct;

import org.apache.sling.api.resource.Resource;

@Model(adaptables=Resource.class)
public class TestModel {

    final static Logger logger = LoggerFactory.getLogger(TestModel.class);

    private String email;

    @PostConstruct
    public void init() {
        logger.info("=====================================================================inside init method");
        email = "something@something.com";
    }

    public String getEmail() {
        return email;
    }
}

我还在这个部分中包含了这个包:

enter image description here

我还在这里寻找了Sling Model课程http://localhost:4502/system/console/status-adapters

并发现它是这样的条目:

Adaptable: org.apache.sling.api.resource.Resource
Providing Bundle: org.apache.sling.models.impl
Available Adapters:
 * com.aem.sites.models.test.TestModel

对我来说更令人惊讶的是com.aem.sites.models.header包中的Sling Model类被正确调用。

我不知道出了什么问题。

提前致谢

分享HTL课程:

<sly data-sly-use.bannerObj=com.aem.sites.models.test.TestModel">
<section id="banner"
    style="background-image: url('/content/dam/aem-site/banner.jpg')">
    <div class="inner">
        <h2>Today's temperature is</h2>
        <p>
             ${bannerObj.email}
        </p>
        <ul class="actions">
            <li><a href="#content" class="button big special">Sign Up</a></li>
            <li><a href="#elements" class="button big alt">Learn More</a></li>
        </ul>
    </div>
</section>
</sly>

不工作我的意思是什么也没发生。 error.log文件中没有出现任何错误或任何日志。

2 个答案:

答案 0 :(得分:0)

我看到的唯一问题是语法错误,data-sly-use属性的值未正确括在引号中。

<sly data-sly-use.bannerObj="com.aem.sites.models.test.TestModel">
<section id="banner"
    style="background-image: url('/content/dam/aem-site/banner.jpg')">
    <div class="inner">
        <h2>Today's temperature is</h2>
        <p>
             ${bannerObj.email}
        </p>
        <ul class="actions">
            <li><a href="#content" class="button big special">Sign Up</a></li>
            <li><a href="#elements" class="button big alt">Learn More</a></li>
        </ul>
    </div>
</section>
</sly>

由于HTL文件可能没有编译,并且没有编译就会输出整个HTL。

答案 1 :(得分:0)

您可以从http://localhost:4502/system/console/status-slingmodels查看您的实例中可用的Sling模型以及它们绑定的资源。

我会确保列出我的模型,然后检查其他类型的错误,例如上面评论中提到的拼写错误。