我想使用@helper.select
表单播放2模板引擎,我应该指定包含Seq[(String,String)]
数据的<options>
。但我有List<Enum>
。而且我对Scala很了解。
如果没有这个助手,我会使用以下代码填充<select>
:
@for( category <- Categories.values()){
<option value="@category">@Messages.get( category.getI18NName )</option>
}
分类的定义:
public enum Category{
CATEGORY1{
@Override
public String getI18NName(){
return "category.category1";
}
},
CATEGORY2{
@Override
public String getI18NName(){
return "category.category2";
}
};
public String getI18NName(){
return null;
}
}
对于测试,我使用options = options("1" -> "1", "2" -> "2", "3" -> "3", "4" -> "4", "5" -> "5")
形式Java example of inputRadioGroup in Play2
如何从Seq[(String,String)]
获取List<Enum>
?
由于
答案 0 :(得分:2)
您可以在此处使用for comprehension:
for (c <- Category.values()) yield c.name() -> c.getI18NName()
这将返回Array[(String, String)]
,但scala会在预期类型为Seq[(String, String)]
时处理转化。