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>
  • 相关阅读:
    猜数字游戏
    Visual Studio Code如何编写运行C、C++
    Git Submodule使用完整教程
    同一客户端多个git账号的配置
    让 Git Bisect 帮助你
    GitHub 风格的 Markdown 语法
    git 命令图解
    图解git中的最常用命令
    Understanding the Bias-Variance Tradeoff
    Seven Techniques for Data Dimensionality Reduction
  • 原文地址:https://www.cnblogs.com/hamawep789/p/10920152.html
Copyright © 2011-2022 走看看