2017-10-10 12 views
0

私はまったく動作しない非常に基本的なスリングモデルクラスを使用しています。これはクラスです: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

を、私もここスリング・モデル・クラスの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に読み込まれたクラスは古いバージョンですか?パッケージを完全にアンインストールし、パッケージを削除してからバンドルが削除され、モデルがステータスアダプタに表示されていないことを確認してください。次に、プロジェクトを再デプロイします。また、sling-model-packagesでcom.aem.sitesだけを試してください。クラスローダの問題を排除するだけです。 –

答えて

0

私が見る唯一の問題は、構文エラーです。data-sly-use属性の値は、引用符で正しく囲まれていません。 HTLファイルをコンパイルしていない可能性があり、コンパイルすることなくそのまま全体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> 

0

http://localhost:4502/system/console/status-slingmodelsからインスタンス内で使用できるSlingモデルと、それらがバインドされているリソースを確認できます。

私のモデルがリストされていることを確認し、上のコメントで述べたタイプミスのような他の種類のエラーをチェックします。

関連する問題