我是靠谱客的博主 魁梧苗条,最近开发中收集的这篇文章主要介绍springmvc中的自定义数据转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、简介

  • 将请求参数通过数据转换接口,自绑定到对应的请求方法参数对象

    在这里插入图片描述

2、如何自定义数据转换接口

  • 应用场景

    • 以日期为例

    • 实现

      • 编写handler

            @RequestMapping("/dodate")
            public String doDate(Date date)
            {
                System.out.println(date);
        
                return "success";
            }
        
      • 编写自定义数据类型转换器

        package com.gec.converter;
        
        import com.gec.bean.User;
        import org.springframework.core.convert.converter.Converter;
        
        /*
        * 自定义数据类型转换器
        * (String)------>User
        * */
        public class StringToUserConverter implements Converter<String, User> {
        
            //张三,30,音乐
            @Override
            public User convert(String s) {
        
                //创建User对象
                User user=new User();
        
                String dataArrays[]=s.split(",");
        
                user.setUsername(dataArrays[0]);
                user.setAge(Integer.parseInt(dataArrays[1]));
                user.setCourse(dataArrays[2]);
        
                return user;
            }
        }
        
        
      • 配置数据类型转换器(beans.xml)

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:mvc="http://www.springframework.org/schema/mvc"
               xmlns:context="http://www.springframework.org/schema/context"
               xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
               xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
                http://www.springframework.org/schema/mvc
                http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-4.3.xsd
                http://www.springframework.org/schema/util
                http://www.springframework.org/schema/util/spring-util.xsd">
        
            <context:component-scan base-package="com.gec.controller" />
        
        
            <!--
            1、注解映射器及适配器的实现
            2、消息转换器的配置实现(默认jackjson)
            3、数据转换
            4、数据格式化处理
            -->
            <mvc:annotation-driven  conversion-service="conversionService"/>
            <!--
            允许直接访问静态资源(js/html/img/css)
            -->
            <mvc:default-servlet-handler />
        
            <!-- 自定义的类型转换器 -->
            <bean id="conversionService"
                  class="org.springframework.context.support.ConversionServiceFactoryBean">
                <property name="converters">
                    <list>
                        <bean class="com.gec.converter.StringToDateConverter" />
                    </list>
                </property>
            </bean>
        
            <!-- 视图解析器 -->
            <!--    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>-->
            <!-- 视图解析器  -->
            <bean id="viewResolver"
                  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <!-- 前缀 -->
                <property name="prefix">
                    <value>/WEB-INF/jsp/</value>
                </property>
                <!-- 后缀 -->
                <property name="suffix">
                    <value>.jsp</value>
                </property>
            </bean>
        
        
        </beans>
        
    • 应用场景二:字符串转换成用户对象

      • 编写handler

            @RequestMapping("/saveuser")
            public String saveUser(User user)
            {
                System.out.println(user);
        
                return "success";
            }
        
      • 编写数据类型转换器

        package com.gec.converter;
        
        import com.gec.bean.User;
        import org.springframework.core.convert.converter.Converter;
        
        /*
        * 自定义数据类型转换器
        * (String)------>User
        * */
        public class StringToUserConverter implements Converter<String, User> {
        
            //张三,30,音乐
            @Override
            public User convert(String s) {
        
                //创建User对象
                User user=new User();
        
                String dataArrays[]=s.split(",");
        
                user.setUsername(dataArrays[0]);
                user.setAge(Integer.parseInt(dataArrays[1]));
                user.setCourse(dataArrays[2]);
        
                return user;
            }
        }
        
        
      • 编写配置文件

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:mvc="http://www.springframework.org/schema/mvc"
               xmlns:context="http://www.springframework.org/schema/context"
               xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
               xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
                http://www.springframework.org/schema/mvc
                http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-4.3.xsd
                http://www.springframework.org/schema/util
                http://www.springframework.org/schema/util/spring-util.xsd">
        
            <context:component-scan base-package="com.gec.controller" />
        
        
            <!--
            1、注解映射器及适配器的实现
            2、消息转换器的配置实现(默认jackjson)
            3、数据转换
            4、数据格式化处理
            -->
            <mvc:annotation-driven  conversion-service="conversionService"/>
            <!--
            允许直接访问静态资源(js/html/img/css)
            -->
            <mvc:default-servlet-handler />
        
            <!-- 自定义的类型转换器 -->
            <bean id="conversionService"
                  class="org.springframework.context.support.ConversionServiceFactoryBean">
                <property name="converters">
                    <list>
                        <bean class="com.gec.converter.StringToDateConverter" />
                        <bean class="com.gec.converter.StringToUserConverter" />
                    </list>
                </property>
            </bean>
        
            <!-- 视图解析器 -->
            <!--    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>-->
            <!-- 视图解析器  -->
            <bean id="viewResolver"
                  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <!-- 前缀 -->
                <property name="prefix">
                    <value>/WEB-INF/jsp/</value>
                </property>
                <!-- 后缀 -->
                <property name="suffix">
                    <value>.jsp</value>
                </property>
            </bean>
        
        
        </beans>
        

最后

以上就是魁梧苗条为你收集整理的springmvc中的自定义数据转换的全部内容,希望文章能够帮你解决springmvc中的自定义数据转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部