Преобразование параметров запроса SpringMVC - PullRequest
1 голос
/ 06 июля 2011

Я могу использовать редакторы свойств в 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 Ответ

0 голосов
/ 06 июля 2011

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

...