play framework标签:foreach传递参数

时间:2011-11-26 13:08:32

标签: playframework

我有一个我正在使用的applet标签:

#{applet steps: 250, "world": "tutorials/level1.world", "req_onetime": "red_ant,5,8&red_ant,6,6&red_ant,5,4&red_ant,3,4&red_ant,2,6&red_ant,3,8"}

并且applet.html文件与html等区别开来:

<applet ...>
#{if _steps}<param name="steps" value="${_steps}">#{/if}
....
</applet>

我可以拥有类似的内容:

foreach passed param write '<param name=$1 value=$2>'

我知道这不重要,因为无论如何都应该很好地定义服务器/ applet api ......但是由于我必须通过10-20个参数,所以无论如何都会更容易阅读: - )

这可能没有编写有点复杂的FastTag吗?

谢谢, 亚历

1 个答案:

答案 0 :(得分:0)

我认为他们无法迭代传递的参数(至少没有记录的方式),但你可以使用地图或列表。

Java:
Map<String, String> map = new HashedMap<String, String>;

Template:
#{list items:map.keySet(), as:'key' }
    <param name="${key}" value="${map.get(key)}">
#{/list}

我认为按键设置会丢失您输入值的顺序,因此如果您需要保留订单,请列出清单。

Java:
List<NameValuePair> pairList = new ArrayList<NameValuePair>;
pairList.add(new NameValuePair("steps", "250");

Template:
#{list items:pairList, as:'pair' }
    <param name="${pair.name}" value="${pair.value}">
#{/list}