1

我可以使用 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();
    }
}

并注册它以执行从 String 到 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());
}

因为 AFAIKList<Foo>.class不是有效的语法

4

1 回答 1

0

看看org.springframework.beans.propertyeditors.CustomCollectionEditor

于 2011-07-06T12:44:41.090 回答