我在春天绑定多选择列表中的项目没有得到它的数据来自DAO数据从另一个选择选项列表中。 用户点击一个按钮并且该数据被使用jquery发送到多选择选项列表。
当窗体发布以来复杂的数据类型,所以我注册了一个CustomEditor和它连接到@InitBinder数据绑定不会发生该项目。
EDITED我已经更新了代码CollectionEditor现在回国的公民的列表返回查看但是我无法获得该列表中的数据来填充选择选项。 我试图元素添加到列表中,不过仍然JSP选择留空当返回形成的服务器。
下的代码:
CustomCollectionEditor
@InitBinder("crime")
protected void initBinder(WebDataBinder binder, HttpServletRequest request, ServletRequestDataBinder victimbinder){
victimbinder.registerCustomEditor(List.class, "victims", new CustomCollectionEditor(List.class){
protected Object convertElement(Object element){
Citizens victims = new Citizens();
String ssNumber = "";
if (element instanceof String){
ssNumber = (String) element;
}
logger.debug("element is ;" +element);
try {
int socialSecurityNumber = Integer.parseInt(ssNumber);
victims = citizenManager.getCitizen(socialSecurityNumber);
} catch (NumberFormatException e) {
logger.error(e.getMessage());
} catch (Exception e) {
logger.error(e.getMessage());
}
return victims;
}
});
这是从DAO在控制器充满JSP
这包含当所述按钮被点击它从列表中取数据上追加到在其下结合POJO其他列表数据填充形式DAO类
<label>Victims List</label><buttonid="addVictimBtn">/button>
<form:select path="" id="dbvictims" title="Victims Of Crime" class="victimLst">
<form:options items="${dbvictims.dbvictimList}" itemValue="socialSecurityNumber" itemLabel="name"/>
</form:select>
被绑定到POJO JSP选择项目
<label>Victims In Crime</label><button id="removeVictimBtn">-</button>
<form:select path="victims" id="victims" title="Victims Of Crime" multiple="multiple" class="victimLst">
<form:options items="${victimList}" itemValue="socialSecurityNumber" itemLabel="name"/>
</form:select><form:errors path="victims" class="errors" />