2012-11-16 95 views
0

禁用多个属性我有以下代码:如何在春季选择标签

<form:select path="roles" items="${roleList}" itemLabel="roleType" itemValue="id" /> 

它生成的HTML如下:

<select id="roles" name="roles" multiple="multiple"> 
<option value="1">ROLE_ADMIN</option> 
<option value="2">ROLE_HQ</option> 
<option value="3">ROLE_MASTER</option> 
<option value="4">ROLE_STATE</option> 
<option value="5">ROLE_CENTRE</option> 
</select> 

此外,我不使用multiple可选属性。任何想法为什么生成的HTML包含"multiple="multiple"

回答

0

只是一个猜测,但由于您将其映射到roles,并且由于角色可能是一个集合,所以使选择框变为多个是有意义的。如果不是多个,则只能在集合中存储单个项目。标签将无法显示选定的角色。

编辑:在阅读标签的源代码后,它似乎我的猜测是正确的。请参阅SelectTag中的forceMultiple()方法。

+0

谢谢,现在它非常有意义。在你看来,将角色存储为集合还是单个项目更好?我想要有层次结构的角色。例如,较低级别的角色只有权查看但不能编辑。 – abiieez

+0

只是为了完成答案:即使绑定到集合,您也可以添加multiple =“false”来禁用“multiple”属性 – wrm