AEM 6.3 - 吊索模型不工作
AEM 6.3 - Sling Model not working
我使用的是非常基本的吊带模型 class,它根本不起作用。这是 class:
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;
}
}
我还在这样的部分中包含了这个包:
我也在此处寻找吊带模型 class 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 模型 class 被正确调用。
不知道怎么回事
提前致谢
共享 HTL class:
<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 文件中没有错误或任何日志。
我看到的唯一问题是语法错误,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。
您可以从 http://localhost:4502/system/console/status-slingmodels 查看您的实例中哪些 Sling 模型可用以及它们绑定到哪些资源。
我会确保列出我的模型,然后检查其他类型的错误,例如上面评论中提到的拼写错误。
我使用的是非常基本的吊带模型 class,它根本不起作用。这是 class:
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;
}
}
我还在这样的部分中包含了这个包:
我也在此处寻找吊带模型 class 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 模型 class 被正确调用。
不知道怎么回事
提前致谢
共享 HTL class:
<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 文件中没有错误或任何日志。
我看到的唯一问题是语法错误,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。
您可以从 http://localhost:4502/system/console/status-slingmodels 查看您的实例中哪些 Sling 模型可用以及它们绑定到哪些资源。
我会确保列出我的模型,然后检查其他类型的错误,例如上面评论中提到的拼写错误。