Adobe 如何在SlingModel的列表中使用

Adobe 如何在SlingModel的列表中使用,adobe,aem,sling,sightly,Adobe,Aem,Sling,Sightly,我无法在作为POJO/SlingModel一部分的lit中显示值。请帮忙 所需输出 商品1 产品1、产品2、产品3 商品2 产品2、产品4、产品5 清晰地编码 <!-- LIST :: SLING MODEL -- FINAL --> <div data-sly- use.model="${'com.tti.tticommons.service.models.LeadTimeTrendsModel' @ rawJson=ws.JSON}" data-sly-unwrap&

我无法在作为POJO/SlingModel一部分的lit中显示值。请帮忙

所需输出
商品1
产品1、产品2、产品3

商品2
产品2、产品4、产品5

清晰地编码

<!-- LIST :: SLING MODEL -- FINAL -->
<div data-sly-  
use.model="${'com.tti.tticommons.service.models.LeadTimeTrendsModel' @ 
rawJson=ws.JSON}" data-sly-unwrap>  
   <div data-sly-list.commodity="${model.getProductsList}">
        <div class="panel panel-default">
            <div class="panel-heading">
              <h3 class="panel-title">Sling Model(List) - ${commodity.name @   
context='html'}</h3>                    
            </div>
            <div class="panel-body" data-sly-
list.pr="${model.getProductsList.getProducts}">
                <div class="col-md-4 col-sm-12 industry list-group no-
border">
                    <div>
                         <a class="">                                 
                             ${model.getProductsList.getProducts[pr]}
                         </a>
                    </div>
                </div>
            </div>   
        </div>
    </div>
</div>

吊索型号(列表)-${commodity.name@
context='html'}
${model.getProductsList.getProducts[pr]}
我的吊索模型类

public class LeadTimeTrends {

private List<Commodity> productsList;

public List<Commodity> getProductsList() {
  ...business logic...
  ...........  
  return productsList;
}

public class Commodity {
  public String code;
  public String name;
  public LinkedHashMap<String, Product> products;

  public void Commodity(String code, String name, LinkedHashMap<String,     
  Product> products) {
    this.code=code;
    this.name=name;
    this.products=products;
  }

  public LinkedHashMap<String, Product> getProducts() {
    return this.products;
  }
}

/***/
public class Product {
  public String code;
  public String name;

  public Product() {
  }

  public Product(String code, String name) {
    this.code=code;
    this.name=name;
  }        
}
}
/** Sling Model class */
@Model(adaptables={Resource.class, SlingHttpServletRequest.class})
public class LeadTimeTrends {
  private List<Commodity> productsList;

  /** */
  public List<Commodity> getProductsList() {        
    List<Commodity> productsList = buildProductsList(this.rawJson);        
    return productsList;
  }

  /** */
  public List<Commodity> buildProductsList(String rawJson){
    List<Commodity> productList = new ArrayList<Commodity>();
    ....business logic....
    ......................
    return productList;
  }

  /** */
  public class Commodity {
    public String code;
    public String name;
    public List<Product> products;

    public void Commodity() {
    }

    public void Commodity(String code, String name, List<Product> products)    
    {
        this.code=code;
        this.name=name;
        this.products=products;
    }
 }

 /** */
 public class Product {
    public String code;
    public String name;

    public Product() {
    }

    public Product(String code, String name) {
        this.code=code;
        this.name=name;
    }    
 }
公共类LeadTimeTrends{
私有列表产品列表;
公共列表getProductsList(){
…业务逻辑。。。
...........  
退货产品清单;
}
公营商品{
公共字符串代码;
公共字符串名称;
公共LinkedHashMap产品;
公共无效商品(字符串代码、字符串名称、LinkedHashMap产品){
这个。代码=代码;
this.name=name;
这个。产品=产品;
}
公共LinkedHashMap getProducts(){
退回本产品;
}
}
/***/
公共类产品{
公共字符串代码;
公共字符串名称;
公共产品(){
}
公共产品(字符串代码、字符串名称){
这个。代码=代码;
this.name=name;
}        
}
}

经过一些研究和仔细检查,我发现解决方案可行

按需输出

以下是最终代码:

明显的代码块

<!-- LIST :: SLING MODEL -- FINAL -->
<div data-sly-use.model = 
"${'com.tti.tticommons.service.models.LeadTimeTrendsModel' @   
rawJson=ws.JSON, configurationId='leadtimetrends', webService=ws}"
data-sly-unwrap>  
   <div data-sly-list.commodity="${model.getProductsList}" data-sly-unwrap>
        <div class="panel panel-default">
            <div class="panel-heading">
              <h3 class="panel-title">Sling Model(List) - ${commodity.name @ 
              context='html'}</h3>                    
            </div>
            <div class="panel-body" data-sly-list.product =  
           "${commodity.products}">
                <div class="col-md-4 col-sm-12 industry 
                 list-group no-border">
                    <div>
                         <a class="">             
                             ${product.name}                                 
                         </a>
                    </div>
                </div>
            </div>   
        </div>
    </div>
</div>

吊索型号(列表)-${commodity.name@
context='html'}
${product.name}
吊索型号等级

public class LeadTimeTrends {

private List<Commodity> productsList;

public List<Commodity> getProductsList() {
  ...business logic...
  ...........  
  return productsList;
}

public class Commodity {
  public String code;
  public String name;
  public LinkedHashMap<String, Product> products;

  public void Commodity(String code, String name, LinkedHashMap<String,     
  Product> products) {
    this.code=code;
    this.name=name;
    this.products=products;
  }

  public LinkedHashMap<String, Product> getProducts() {
    return this.products;
  }
}

/***/
public class Product {
  public String code;
  public String name;

  public Product() {
  }

  public Product(String code, String name) {
    this.code=code;
    this.name=name;
  }        
}
}
/** Sling Model class */
@Model(adaptables={Resource.class, SlingHttpServletRequest.class})
public class LeadTimeTrends {
  private List<Commodity> productsList;

  /** */
  public List<Commodity> getProductsList() {        
    List<Commodity> productsList = buildProductsList(this.rawJson);        
    return productsList;
  }

  /** */
  public List<Commodity> buildProductsList(String rawJson){
    List<Commodity> productList = new ArrayList<Commodity>();
    ....business logic....
    ......................
    return productList;
  }

  /** */
  public class Commodity {
    public String code;
    public String name;
    public List<Product> products;

    public void Commodity() {
    }

    public void Commodity(String code, String name, List<Product> products)    
    {
        this.code=code;
        this.name=name;
        this.products=products;
    }
 }

 /** */
 public class Product {
    public String code;
    public String name;

    public Product() {
    }

    public Product(String code, String name) {
        this.code=code;
        this.name=name;
    }    
 }
/**吊索型号类别*/
@模型(Adaptebles={Resource.class,SlingHttpServletRequest.class})
公共类领先趋势{
私有列表产品列表;
/** */
公共列表getProductsList(){
List productsList=buildProductsList(this.rawJson);
退货产品清单;
}
/** */
公共列表buildProductsList(字符串rawJson){
List productList=new ArrayList();
……业务逻辑。。。。
......................
返回产品列表;
}
/** */
公营商品{
公共字符串代码;
公共字符串名称;
公开上市产品;
公共商品(){
}
公共无效商品(字符串代码、字符串名称、列表产品)
{
这个。代码=代码;
this.name=name;
这个。产品=产品;
}
}
/** */
公共类产品{
公共字符串代码;
公共字符串名称;
公共产品(){
}
公共产品(字符串代码、字符串名称){
这个。代码=代码;
this.name=name;
}    
}