springmvc中自定义类型转换步骤

  1. 创建一个类实现Converter接口,并重写convert方法

    public class MyConvert implements Converter<String, User> {
        @Override
        public User convert(String s) {
            String[] split = s.split("-");
            if(split.length != 4){
                throw new RuntimeException("请输入完整的信息,并用-隔开");
            }
            User user = new User();
            user.setId(Integer.valueOf(split[0]));
            user.setName(split[1]);
            user.setAge(Integer.valueOf(split[2]));
            user.setGender(split[3]);
            return user;
        }
    }
    
  2. 在配置中,配置类型转换器

    <!--配置类型转换器 不能使用ConversionServiceFactoryBean,不然会导致@DateTimeFormat和@NumberFormat失效-->
        <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" name="conversionService2">
         <property name="converters">
             <set>
                 <bean class="com.jiang.util.MyConvert"></bean>
             </set>
         </property>
     </bean>
    
  3. 将类型转换器加入mvc注解驱动

    <!--配置访问静态资源 -->
    <mvc:annotation-driven conversion-service="conversionService2"></mvc:annotation-driven>
    
  4. 测试

 @RequestMapping("/convert")
    public String convert(String user,Model model){
        MyConvert convert = new MyConvert();
        User user1 = convert.convert(user);
        model.addAttribute("user",user1);
        System.out.println(user1);
        return "index";
    }
posted @ 2021-03-16 23:58  阿灿呀  阅读(89)  评论(0)    收藏  举报