【问题标题】:How to iterate on a Hashmap in html template如何在 html 模板中迭代 Hashmap
【发布时间】:2012-04-30 15:04:23
【问题描述】:

我是 2.0 的新手,我正在寻找一种在 html 模板中迭代 hashmap 的方法。 我有一个绑定到模型(Java 端)的表单,该模型具有称为文章的 hashmap(Long, List(Article)) 属性。

在旧版本中,我有一个数组列表来代替哈希图。 在我的模板中,我使用了运行良好的 @repeat 助手。

@repeat(editBusinessForm("articles"), min = 0) { article =>
    @businessarticle(article)
}

我尝试了几种方法来适应这个@repeat 或@for,但我找不到方法。

我只需要根据类别过滤器显示部分文章。我选择了 hashmap 来做到这一点,但也许还有其他方法。

感谢任何帮助。

【问题讨论】:

    标签: templates playframework hashmap playframework-2.0


    【解决方案1】:
    @for((key, value) <- yourMap) {
      …
    }
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      @for(key <- yourHashMap.keySet()){
          //get you content
          yourHashMap.get(key)
          //do what you need with the list<articles>
          //example  
          @repeat(yourHashMap.get(key)) { article =>
                 @businessarticle(article)
          }
      }
      

      希望这会有所帮助。

      【讨论】:

      • 抱歉,回答迟了。这段代码帮助我理解了如何迭代地图。我现在的问题是知道如何使用表单数据来做到这一点。假设我有一个“editBusinessForm”,这将不起作用:@for(key
      • 嗯,我想你可以使用 editBusinessForm("articles").value 但它会给你一个字符串,我不知道这是否有帮助。查看文档java fieldscala field。没有什么可以帮助我猜你只有价值方法
      • 是的,我已经查看了 Field 方法,并且“值”不适合您所说的原因,它给了我一个我无法处理的字符串。我以为我可以使用适用于 List 但不适用于 Map 的索引方法。我正在尝试其他一些解决方法,但还没有结果。谢谢
      猜你喜欢
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多