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>
  • 相关阅读:
    Mac下安装cscope和ctags
    MAC的VIMRC
    我的Linux系统的VIMRC
    关于在VI中查看BIN文件二进制值不对的问题
    没有关心过编写代码方式的好处,你是不是也是这样?
    四十不惑,真的不惑了么?
    jQuery通过text值来设置选定,以及遍历select的选项个数和遍历
    C#解析XML文件
    网页调用本地程序(Windows下浏览器全兼容)
    C#获取文件的md5
  • 原文地址:https://www.cnblogs.com/hamawep789/p/10920152.html
Copyright © 2011-2022 走看看