グループ編集フォームがあります:
<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 クラスの member 属性の定義は以下のとおりです。グループ クラスは、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
...
コンテンツが非表示フィールドにバインドされると、コンマ区切りに連結されます。その後、配列リスト エントリに再び分割されると、もちろん各エントリは 4 つの個別のエントリに分割されます。
ArrayList にカスタム コンバーターを使用しようとしましたが、ロケールのリソース メッセージの読み込みなど、他の処理が台無しになりました。
DAOクラスをラップしたり変更したりする必要がないように、醜くない方法でそれを処理する方法について何か提案はありますか。
ありがとう、
/ヤクブ