2012-04-30 7 views
2

私は2.0をプレイするのが初めてで、htmlテンプレートでハッシュマップを反復する方法を探しています。 articleという名前のハッシュマップ(Long、List(Article))属性を持つモデル(Java側)にバインドされたフォームがあります。htmlテンプレートのハッシュマップを反復する方法

古いバージョンでは、私はハッシュマップの代わりにarraylistを持っていました。 私のテンプレートでは、うまく動作する@repeatヘルパーを使用しました。

この@repeatまたは@forに適合させるためにいくつかの方法を試しましたが、私は方法を見つけることができませんでした。

カテゴリフィルタに応じて記事の一部のみを表示する必要があります。私はそれを行うためにハッシュマップを選択しましたが、おそらく別の方法があります。

何か助けていただければ幸いです。このことができます

@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) 
    } 
} 

希望:

答えて

3

あなたのような何かを行うことができます。

+0

ご迷惑をおかけして申し訳ありません。このコードは、マップを反復する方法を理解するのに役立ちました。私の問題は、フォームデータでこれをどうやって行うことができるかを知ることです。 editBusinessForm( "articles")がFieldであり、見つかりませんでしたので、私は "editBusinessForm"があると仮定して、これは動作しません: @for(key < - editBusinessForm( "articles")。keySet()) 関連付けられたマップを取得する方法。 助けてくれてありがとう。 – user431015

+0

ええと、editBusinessForm( "articles")という値を使うことができますが、それが役に立つかどうかわからない文字列があります。ドキュメント[javaフィールド](http://www.playframework.org/documentation/api/2.0/java/index.html)または[scalaフィールド](http://www.playframework.org/documentation /api/2.0/scala/index.html#play.api.data.Field)。私はあなたが値メソッドを持っていると推測するのを助けることはあまりありません –

+0

はい、私はすでにフィールドメソッドと "値"の周りを見ていたあなたが言うように、それは私に対処できない文字列を与える原因に合っていませんと。私はListで動作するindexesメソッドを使うことができると思ったが、Mapではできなかった。私はいくつかの他の回避策を試みていますが、まだ結果はありません。ありがとうございました – user431015

14
@for((key, value) <- yourMap) { 
    … 
} 
関連する問題