SpringMVC преобразование параметров запроса

Я могу использовать редакторы свойств в SpringMVC, чтобы выполнить пользовательское преобразование параметра запроса. Например, чтобы преобразовать параметр запроса в экземпляр Foo ниже

public class Foo {
    private val;

    public Foo(String val) {
        this.val = val;
    }        
    public getVal() {
        return val;
    }     
}

Я могу определить редактор свойств

public class FooPropertyEditor extends PropertyEditorSupport {

    void setAsText(String paramValue) {
        value = new Foo(paramValue);
    }

    public String getAsText() {
        return ((Foo) value).getVal();
    }
}

и зарегистрируйте это, чтобы выполнить преобразование из строки в Foo

public class CustomEditorRegistrar implements PropertyEditorRegistrar {

    public void registerCustomEditors(PropertyEditorRegistry reg) {
       reg.registerCustomEditor(Foo.class, new FooPropertyEditor());
    }
}

Можно ли использовать редактор свойств для преобразования многозначного параметра, такого как

foo=foo1&foo=foo2&foo=foo3

к List<Foo>, Предполагая, что я уже написал соответствующий редактор свойств FooListPropertyEditorЯ не думаю, что смогу зарегистрировать это, используя:

public void registerCustomEditors(PropertyEditorRegistry reg) {
   reg.registerCustomEditor(List<Foo>.class, new FooListPropertyEditor());
}

Потому что AFAIK List<Foo>.class неверный синтаксис

1 ответ

Взгляните на org.springframework.beans.propertyeditors.CustomCollectionEditor

Другие вопросы по тегам