zoukankan      html  css  js  c++  java
  • freemarker 直接使用List来遍历set集合,可能会报错

    转摘:http://www.javaweb1024.com/java/JavaWebzhongji/2015/04/08/528.html

    freemarker  直接使用List来遍历set集合,可能会报错! 错误如下 

    Java代码

    private Set<Article> articles = new HashSet<Article>();

    Freemarker中遍历

    [#list category.articles?chunk(5) as article1]
         <div>
             <ul>
                  [#list article1 as article ]
                    [#assign articleDesc=i18n_description(article.articleDescriptions,true)/]
                    [#if articleDesc!=null]
             ${abbreviate(articleDesc.title, 80, "...")}
             [/#if]
                [/#list]
              </ul>
          </div>
     [/#list]

     报错信息

    Underlying collection is not a list, it's org.hibernate.collection.internal.PersistentSet

    freemarker.template.TemplateModelException: Underlying collection is not a list, it's org.hibernate.collection.internal.PersistentSet

             at freemarker.ext.beans.CollectionModel.get(CollectionModel.java:127)

             at freemarker.core.SequenceBuiltins$chunkBI$ChunkedSequence$1.get(SequenceBuiltins.java:792)

             at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:176)

             at freemarker.core.Environment.visit(Environment.java:428)

             at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.MixedContent.accept(MixedContent.java:92)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179)

             at freemarker.core.Environment.visit(Environment.java:428)

             at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.MixedContent.accept(MixedContent.java:92)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.MixedContent.accept(MixedContent.java:92)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.MixedContent.accept(MixedContent.java:92)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)

             at freemarker.core.Environment.visit(Environment.java:428)

             at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)

             at freemarker.core.Environment.visit(Environment.java:221)

             at freemarker.core.Environment$1.render(Environment.java:246)

             at com.eecart.template.directive.BaseDirective.setLocalVariable(BaseDirective.java:184)

             at com.eecart.template.directive.ArticleCategoryRootListDirective.execute(ArticleCategoryRootListDirective.java:51)

             at freemarker.core.Environment.visit(Environment.java:274)

             at freemarker.core.UnifiedCall.accept(UnifiedCall.java:126)

             at freemarker.core.Environment.visit(Environment.java:221)

    解决方案:

    不直接使用 articles

    @Transient

       public List<Article> getMyArticles(){

          List<Article> list = new ArrayList<Article>(articles);

          return list;

       }

  • 相关阅读:
    毕业论文格式
    2018.12.14
    关于百度搜索引擎的优缺点
    2018.12.13
    2018.12.12
    2018.12.11
    2108.12.10
    2018.12.9
    2018.12.8
    2018.12.7
  • 原文地址:https://www.cnblogs.com/zihan1120/p/4410008.html
Copyright © 2011-2022 走看看