Spring绑定/ Velocity到支持列表

时间:2011-03-03 21:15:21

标签: spring data-binding velocity

我正在尝试将复选框绑定到我的POJO上的项目列表。

class SimplePOJO {
   private List <Key> selectedEntities = new ArrayList<Key>();
   public void setSelectedEntities(List <Key> a) { this.selectedEntities = a; }
   public List <Key> getSelectedEntities() { return this.selectedEntities; }
}

速度标记:

#springBind("command")
#springFormCheckBox("command.selectedEntities", "") 

这根本不起作用,只是逐字输出代码。

尝试使用标准物品:

<input type="checkbox"
   #if ($command.selectedEntities.contains($item)) checked="checked" #end
   value="$item.key" />

每当我检查任何方框并提交表单时,我的支持bean列表仍为空。如何在列表中完成设置值?

注意:我还在POJO中尝试了以下内容:

private List <Key> selectedEntities = new AutoPopulatingList <Key>(Key.class);

环境:Spring 3.0.5,Velocity Engine 1.7

2 个答案:

答案 0 :(得分:1)

我需要的绑定代码是:

#springFormCheckbox("command.selectedEntities[$velocityCount]", "id=entity$velocityCount value=$item.key #if($command.selectedEntities.contains($item.key)) checked=checked #end ")

我倾向于在实时版本中输入拼写错误,而不是这个简化的例子。

答案 1 :(得分:0)

也许你需要这个:

#springFormCheckboxes("command.selectedEntities" $labels " " "")

其中$labels是从Key到其复选框标签的地图。第三个参数是复选框之间的分隔符,第四个参数是任意属性。

另见: