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 클래스가 제대로 호출되고 있다는 것입니다.

무엇이 잘못 되었나요? 정공 수송층 클래스 공유 미리

에서

감사 : I 작동하지함으로써

<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 속성 값은 따옴표로 묶이지 않아야합니다.

<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을 그대로 출력했을 수 있습니다.

0

http://localhost:4502/system/console/status-slingmodels에서 인스턴스에서 사용할 수있는 슬링 모델과 이들이 바인딩 된 리소스를 확인할 수 있습니다.

나는 내 모델이 나열되어 있는지 확인한 다음 위의 주석에서 언급 한 오타와 같은 다른 종류의 오류를 확인합니다.