これにはマップは必要ないと思いますが、要素のリストだけです。私が間違っている場合は、あなたが達成しようとしていることをより明確に説明してください。
最初の解決策
あなたのモデル:
@Entity
public class Element extends Model {
public String name;
public String text;
}
コントローラーで:
public static void findElements(){
List<Element> elements = Element.findAll();
render(elements);
}
あなたの見解では:
<ul>
#{list items:elements, as:element}
<li>Name: ${element.name}, Text: ${element.text}</li>
#{/list}
</ul>
2番目の解決策
それ以外の場合は、実際のマップが必要な場合は、上記のモデルを使用してコントローラーにマップを設定できます。
public static void findElements(){
List<Element> elements = Element.findAll();
HashMap<String,String> hm= new HashMap<String,String>();
for(Element el: elements){
hm.put(el.name, el.text);
}
render(hm);
}
見る:
<ul>
#{list items:hm.KeySet(), as:name}
<li>Name: ${name}, Text: ${elements.get(name)}</li>
#{/list}
</ul>
3 番目の解決策
マップのコンテナーを作成します。
@Entity
public class ElementContainer extends Model {
@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "name_key", nullable = false)
public Map<String, String> hm;
}
コントローラ:
public static void findElements(){
ElementContainer ec = ElementContainer.find().first();
Map<String,String> hm = null;
if(ec!=null)
hm = ec.hm;
render(hm);
}