Привязка пружины: флажки для выносятся на отправку приводит к ошибке

Просто голова вверх, я использую Java и Spring для веб-приложения.

У меня есть объект (ObjectBean), который содержит наложение (наложение) типа EnumnnerObject в качестве атрибута. Я передаю этот объект в качестве компонента из моего контроллера на мой вид .jsp. Я использую следующий код .jsp, чтобы связать флажки:

<form:form commandName="objectBean" name="whatever" action="./save.htm" method="post">
    <form:checkboxes items="${allOptions}" path="enumSet" />
</form:form>

вот мой initbinder контроллера:

@InitBinder
protected void initBinder(WebDataBinder binder) throws Exception{
    binder.registerCustomEditor(EnumSet.class, "enumSet", new CustomCollectionEditor(Collection.class){
        protected Object convertElement(Object element){
            if(element instanceof String){
                EnumInnerObject enumInnerObject= EnumInnerObject.valueOf((String)element);
                return enumInnerObject;
            }
             return null;
         }
     });

в контроллере, я пропускаю alloptions (отдельно от моей фасоли), и это содержит все варианты энумии, так что все флажки отображается. «enumset» - это атрибут начисления с соответствующими значениями, содержащимися (если значение содержится в наложении, то он автоматически проверяет правильное поле в «Alloptions»). Все это работает и .jsp правильно показывает правильные проверенные поля. Однако проблема в том, что я отправляю страницу для сохранения. Я получаю следующую ошибку:

java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String[]] to required type [java.util.EnumSet] for property 'enumSet': PropertyEditor [com.example.controller.MyController$1] returned inappropriate value]

У меня есть чувство, что я должен изменить INITBINDER, чтобы получить форму отправки на работу. Любые идеи ??

Спасибо!

7
задан Stan Kurilin 20 September 2011 в 15:29
поделиться