如何在Play中动态呈现HTML?例如,我有一个包含平台列表的枚举或数据库表(pc / xbox / ps3)。我想在我的HTML表单中呈现每个复选框列表。现在我只是用元素硬编码HTML表单,但是长期它需要是动态的,并且列表(复选框/无线电/下拉列表)需要绑定到系统,以便在添加新项目时接收新项目数据库。
在回发时如何访问处理回发的控制器中的那些表单字段?我发现在控制器动作的函数参数列表中我可以指定表单字段的名称,这是有效的,但如果我要有100个字段的表单,这是不现实的,那么我不想必须在我的控制器动作函数中声明100个参数。
答案 0 :(得分:2)
您可以在枚举上调用方法values()
以获取枚举值数组。然后将其映射到List。例如,您可以使用google-collections中的Lists.newArrayList(array)
。
您可以在request.params
hashmap中找到的表单参数。 Request是从play.mvc.Controller继承的字段。
另请查看此http://www.playframework.org/documentation/1.2.3/cheatsheet/controllers。 (有用的东西,但不容易找到)
UPD
List theList =....;
render(theList);
并在模板中(选择的例子):
<select id="viewSelect" size="1" >
#{list items:theList, as:'listItem'}
<option id="${listItem.getId()}">${listItem.getName()}</option>
#{/list}
</select>