数据绑定

作者: 墨线宝 | 来源:发表于2021-03-05 09:25 被阅读0次

原文链接http://zhhll.icu/2021/%E6%A1%86%E6%9E%B6/springmvc/%E6%95%B0%E6%8D%AE%E7%BB%91%E5%AE%9A/

数据绑定

数据绑定流程

  • springmvc框架将ServletRequest对象及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象
  • DataBinder调用装配在springmvc上下文中的ConversionService组件进行数据类型转换、数据格式化工作。将Servlet中的请求信息填充到入参对象中
  • 调用Vaildator组件对已经绑定了请求消息的入参对象进行数据合法性检验,并最终生成数据绑定结果BindingData对象
  • springmvc抽取BindingResult中的入参对象和校验错误对象,将他们赋给处理方法的响应入参

自定义类型转换器

可通过ConversionServiceFactoryBean的converters属性注册自定义的类型转换器

可以使用三种方式实现自定义类型转换器

  • 实现Converter<S, T>接口

    public interface Converter<S, T> {
          // 将S类型转为T类型
        T convert(S var1);
    }
    

实现Converter<S, T>接口

@Component
public class UserConverter implements Converter<String, User> {
    @Override
    public User convert(String s) {
        // 规则为每个字段使用:分隔,如果字段为null,将null拼入串中(规则可以与前端定  这里就举个例子)
        if(s != null && !"".equals(s)){
            String[] values = s.split(":");
            if(values != null && values.length > 0){
                User user = new User();
                if("null".equals(values[0])){
                    user.setId(0);
                } else {
                    user.setId(Integer.parseInt(values[0]));
                }

                if("null".equals(values[1])){
                    user.setName("");
                } else {
                    user.setName(values[1]);
                }
                return user;
            }
        }
        return null;
    }
}
<!-- 配置自定义类型转换器 -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <list>
            <ref bean="userConverter"/>
        </list>
    </property>
</bean>

<mvc:annotation-driven conversion-service="conversionService"/>
@RequestMapping("/testConverter")
public String testConverter(User user){
    System.out.println(user);
    return "hello";
}

由于本身的博客百度没有收录,博客地址http://zhhll.icu

相关文章

  • AngularJs数据绑定

    数据的绑定:单项数据绑定和双向数据绑定 1、单项数据绑定(模型到视图) 运行结果: 其中绑定数据有两种方式:“{{...

  • 六、ASP.NET之数据绑定控件(一)

    数据绑定控件 简单数据绑定 1、数据绑定的实现方式分为: (1)简单绑定 (a)表达式绑定 (b)方法绑定 (2...

  • Data Bindings 数据绑定

    数据绑定 分为两种:1.控件间绑定 2.后台数据绑定 一、控件间绑定 二、后台数据绑定

  • 第十三章 数据绑定

    数据绑定介绍 Spring MVC是怎样完成的数据绑定 在数据绑定过程中,Spring MVC框架会通过数据绑定组...

  • Vue和React数据绑定对比

    在数据绑定上来说,vue的特色是双向数据绑定,而在react中是单向数据绑定。 一 单向和双向数据绑定其实不是完全...

  • 数据的绑定 --- 双向绑定

    数据双向绑定 : 视图的数据可以绑定到模型当中,模型的数据可以绑定到视图当中 想要实现视图的数据绑定到模型当中,必...

  • AppWorker教程-数据绑定

    数据绑定 数据绑定是在应用程序 UI 与数据源建立连接的过程。如果绑定正确数据,则当数据更改其值时,绑定到数据的U...

  • Angular入门0

    Angular 绑定数据 数据文本绑定 绑定HTML 3.声明属性的几种方式 4.绑定属性用[]包裹 5.数据循环...

  • Vue入门(二)——数据绑定

    一、什么是双向数据绑定 双向数据绑定是Vue的核心功能之一。所谓双向数据绑定是指:HTML标签上的数据绑定到Vue...

  • Vue之表单双向数据绑定和组件

    三、表单双向数据绑定和组件 目录:双向数据绑定、组件 1.双向数据绑定 1)什么是双向数据绑定Vue.js是一个M...

网友评论

    本文标题:数据绑定

    本文链接:https://www.haomeiwen.com/subject/ssqrqltx.html