zoukankan      html  css  js  c++  java
  • springmvc数据绑定流程

    1、数据绑定流程原理

    1.1 Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象。

    1.2 DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换、数据格式化工作。将 Servlet 中的请求信息填充到入参对象中。
    1.3 调用 Validator 组件对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果 BindingData 对象。
    1.4 Spring MVC 抽取 BindingResult 中的入参对象和校验错误对象,将它们赋给处理方法的响应入参

    2、自定义类型转换器

    自定以类型转换器通过实现Converter<S,T> 接口的 convert(String source)方法来完成。

    源码:

    @Component(value="userConverter")
    public class UserConverter implements Converter<String,User>{
    	/*
    	 * 前端传来  xxx-xxx 格式的数据
    	 * (non-Javadoc)
    	 * @see org.springframework.core.convert.converter.Converter#convert(java.lang.Object)
    	 */
    	@Override
    	public User convert(String str) {
    		
    		System.out.println("进入自定义User类型转化器");
    		if(str != null) {
    			System.out.println(str);
    			User user = new User();
    			String[] arr = str.split("-");
    			user.setUsername(arr[0]);
    			user.setPassword(arr[1]);
    			System.out.println("UserConverter:" + user);
    			return user;
    		}
    		return null;
    	}
    }
    

    将改转换器在springmvc配置文件中注册

    <mvc:annotation-driven
    	conversion-service="conversionService" />
    	
    <bean id="conversionService"
    	class="org.springframework.context.support.ConversionServiceFactoryBean">
    	<property name="converters">
    		<set>
    			<ref bean="userConverter" />
    		</set>
    		
    	</property>
    </bean>
  • 相关阅读:
    【转】人类的心理行为模式----《影响力》笔记
    c++类型形参的实参的受限转换
    如何确定网页和查询的相关性
    英语美文摘要
    特殊的字符数组
    c++中的虚函数
    [C#] 常用工具类——应用程序属性信息访问类
    c#常用工具类:文件和二进制转换
    [C#] 常用工具类——文件操作类
    Lamda和Linq语法对比详细
  • 原文地址:https://www.cnblogs.com/hamawep789/p/10920152.html
Copyright © 2011-2022 走看看