天天看点

数据绑定和自定义转化类型DataBinder/ConversionService数据绑定和自定义转化类型DataBinder/ConversionService

数据绑定和自定义转化类型DataBinder/ConversionService

-1. Spring MVC 主框架将 ServletRequest 对象及目标方

法的入参实例传递给 WebDataBinderFactory 实例,以创

建 DataBinder 实例对象

• 2. DataBinder 调用装配在 Spring MVC 上下文中的

ConversionService 组件进行数据类型转换、数据格式

化工作。将 Servlet 中的请求信息填充到入参对象中

• 3. 调用 Validator 组件对已经绑定了请求消息的入参对象

进行数据合法性校验,并最终生成数据绑定结果

BindingData 对象

• 4. Spring MVC 抽取 BindingResult 中的入参对象和校验

错误对象,将它们赋给处理方法的响应入参

自定义转化器

“conversionService”/> 会将自定义的 ConversionService 注册到Spring MVC 的上下文中

第一种配置

数据绑定和自定义转化类型DataBinder/ConversionService数据绑定和自定义转化类型DataBinder/ConversionService

第二种配置

数据绑定和自定义转化类型DataBinder/ConversionService数据绑定和自定义转化类型DataBinder/ConversionService

转化器组件示例 实现Converter接口

@Component
public class EmployeeConverter implements Converter<String, Employee> {

    @Override
    public Employee convert(String source) {
        if(source != null){
            String [] vals = source.split("-");
            //[email protected]
            if(vals != null && vals.length == ){
                String lastName = vals[];
                String email = vals[];
                Integer gender = Integer.parseInt(vals[]);
                Department department = new Department();
                department.setId(Integer.parseInt(vals[]));

                Employee employee = new Employee(null, lastName, email, gender, department);
                System.out.println(source + "--convert--" + employee);
                return employee;
            }
        }
        return null;
    }

}
           

继续阅读