我有一个小组编辑表格:
<form:form method="POST" action="" commandName="group">
<table>
<tr>
<td><form:label path="name">Name</form:label></td>
<td><form:input path="name" disabled="disabled" /></td>
<td><form:errors path="name" class="error" /></td>
</tr>
<tr>
<td><form:label path="description">Description</form:label></td>
<td><form:input path="description" /></td>
<td><form:errors path="description" class="error" /></td>
</tr>
<tr>
<td><form:label path="gidNumber">GID</form:label></td>
<td><form:input path="gidNumber" /></td>
<td><form:errors path="gidNumber" class="error" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" /></td>
</tr>
</table>
<form:hidden path="members" />
</form:form>
此表单是类 Group 的绑定对象。问题是将成员属性绑定到隐藏字段。Group 类中成员属性的定义如下。组类也被 Spring LDAP ODM 管理器使用(因此那里的注释)。
@Attribute(name="member", syntax="1.3.6.1.4.1.1466.115.121.1.12")
private List<String> members = new ArrayList<String>();
这个数组列表的内容通常是这样的:
1: uid=user1,ou=users,dc=example,dc=com
2: uid=lilcuttie2,ou=users,dc=example,dc=com
3: uid=naprostejmagor,ou=users,dc=example,dc=com
4: uid=crazyuser,ou=users,dc=brazzers,dc=com
...
当内容绑定到隐藏字段时,它被连接到逗号分隔,然后当它再次被拆分为 arraylist 条目时,当然每个条目被分成四个单独的条目。
我尝试为 ArrayList 使用自定义转换器,但它搞砸了一些其他的东西,比如为语言环境加载资源消息。
你有什么建议如何以任何不丑陋的方式处理它 - 这样我就不必包装我的 DAO 类或修改它们。
谢谢,
/雅库布