2017-10-10 61 views
0

我正在使用非常基本的Sling Model類,它根本不起作用。這是類:AEM 6.3 - 吊帶模型不起作用

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 = "[email protected]"; 
    } 

    public String getEmail() { 
     return email; 
    } 
} 

我也包括在這樣的部分包:

enter image description here

我也找過吊帶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文件中沒有出現錯誤或任何日誌。

+0

你是什麼意思不工作?你在哪裏使用吊索模型?你能分享這個html嗎? –

+0

用我所需的信息更新了我的文章。 – user972418

+0

可以在AEM中加載的類是舊版本嗎?嘗試徹底卸載軟件包,刪除軟件包,然後確保軟件包已被刪除,並且模型未顯示在狀態適配器中。然後重新部署您的項目。也可以嘗試僅在吊索模型包中使用com.aem.sites。只是爲了消除任何類加載器問題。 –

回答

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。