2015-09-07 66 views
0

我是AEM新手,考慮我的js會返回itemList(例如:var itemList = list.getItems();)。 每個項目的框架是:基於語言環境下的人口下降(輕微AEM)

interface Item { 

      /** 
       * Get the item's title. 
       * 
       * @return the title 
       */ 
       @Nonnull 
       String getTitle(); 

       /** 
       * Get the item's localized title. 
       * 
       * @param locale the locale for localization 
       * 
       * @return the title 
       */ 
       @Nonnull 
       String getTitle(Locale locale); 

       /** 
       * Get the item's value. 
       * 
       * @return the value 
       */ 
       @Nonnull 
       String getValue(); 
      } 

我怎樣才能獲得基於區域標題代替在select標籤的HTML代碼如下提到${list.title}(即調用getTitle(locale))(我需要這兩個標題(區域)和值在項目列表中): option value =「$ {list.value}」> $ {list.title}

回答

0

從Sightly開始,您無法使用參數訪問方法。

但是,在Use-API中,可以使用與Sightly執行上下文中相同的全局變量,並且還可以將參數傳遞給Use-API的初始化。

在Java代碼中,你可以爲實例訪問的頁面語言,這樣的事情:

PageManager pageManager = request.getResourceResolver().adaptTo(PageManager.class); 
Page currentPage = pageManager.getContainingPage(request.getResource()); 
Locale locale = currentPage.getLanguage(false); 

否則,將參數傳遞給Java應用的API,這是怎麼一回事呢:

<div data-sly-use.foo="${'Foo' @ locale='es'}"> 
    <h1>${foo.titleLocalized}</h1> 
</div> 

和相應的Java:

public class Foo extends WCMUsePojo { 
    private String locale; 

    @Override 
    public void activate() throws Exception { 
     String locale = get("locale", String.class); 
    } 

    public String titleLocalized() { 
     ... 
    } 
}