相关疑难解决方法(0)

Spring验证,如何让PropertyEditor生成特定的错误消息

我正在使用Spring进行表单输入和验证.表单控制器的命令包含正在编辑的模型.某些模型的属性是自定义类型.例如,Person的社会安全号码是自定义SSN类型.

public class Person {
    public String getName() {...}
    public void setName(String name) {...}
    public SSN getSocialSecurtyNumber() {...}
    public void setSocialSecurtyNumber(SSN ssn) {...}
}
Run Code Online (Sandbox Code Playgroud)

并在Spring表单编辑命令中包装Person:

public class EditPersonCommand {
    public Person getPerson() {...}
    public void setPerson(Person person) {...}
}
Run Code Online (Sandbox Code Playgroud)

由于Spring不知道如何将文本转换为SSN,因此我使用表单控制器的binder注册了一个客户编辑器:

public class EditPersonController extends SimpleFormController {
    protected void initBinder(HttpServletRequest req, ServletRequestDataBinder binder) {
        super.initBinder(req, binder);
        binder.registerCustomEditor(SSN.class, "person.ssn", new SsnEditor());
    }
}
Run Code Online (Sandbox Code Playgroud)

和SsnEditor只是一个java.beans.PropertyEditor可以将文本转换为SSN对象的自定义:

public class SsnEditor extends PropertyEditorSupport {
    public String getAsText() {...} // converts SSN to text
    public …
Run Code Online (Sandbox Code Playgroud)

java validation spring

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

spring ×1

validation ×1