SpringMVC请求参数转换

时间:2011-07-06 10:05:19

标签: java spring-mvc propertyeditor

我可以使用SpringMVC中的属性编辑器来执行请求参数的自定义转换。例如,将请求参数转换为<{1}}下面的实例

Foo

我可以定义属性编辑器

public class Foo {
    private val;

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

并注册它以执行从String到Foo的转换

public class FooPropertyEditor extends PropertyEditorSupport {

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

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

是否可以使用属性编辑器转换多值参数,例如

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

因为AFAIK public void registerCustomEditors(PropertyEditorRegistry reg) { reg.registerCustomEditor(List<Foo>.class, new FooListPropertyEditor()); } 无效语法

1 个答案:

答案 0 :(得分:0)

看看 org.springframework.beans.propertyeditors.CustomCollectionEditor