第一步:实现Converter接口,实现自己的数据类型转换类
converter接口:

@FunctionalInterface
public interface Converter<S, T> {  //S,T是泛型,S是字符串类型,T是要转换的目标类型
    @Nullable
    T convert(S var1);   //实现Vonverter接口要实现converter方法,参数是字符串,返回转换的目标类型
}

自定义的类型转换器

public class StringToDateConverter implements Converter<String,Date>{
    @Override
    public Date convert(String source) {
        if (source==null){
            System.out.println("请输入字符");
        }
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
        try {
            return df.parse(source);
        } catch (ParseException e) {
            System.out.println("请输入合法字符");
        }
        return null;
    }
}

第二步:在ContesxtConfiguration.xml文件中进行配置
1.转化器和视图解析器的配置相同,它们都是Spring提供的类,转换器的类是ConversionServiceFactoryBean,该类有一个set集合类型的属性,配置自定义类型转换器就是将自己写的类型转换器添加到set集合中
2.自定义类型转换器是以<bean>的方式添加进set集合中的
image.png

<!--配置转换器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <!--注册自己写的转换器-->
        <property name="converters">
            <!--添加到set集合中-->
            <set>
                <!--添加bean-->
                <bean class="com.springmvc.converterTest.StringToDateConverter"></bean>
            </set>
        </property>
    </bean>

3.启用自定义类型转换器
conversion-service="conversionService"

<beans>
    <!-- 开启对注解的支持-->
    <!--开启类型转换器-->
    <mvc:annotation-driven conversion-service="conversionService"/>
</beans>

小问题:在Spring中获取Servlet原生API
直接在接收用户的请求的方法中添加对应的参数即可

@RequestMapping(path = "/APITest")
    public String APITest(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session=request.getSession();
        ServletContext context=session.getServletContext();
        System.out.println(request);
        System.out.println(response);
        System.out.println(session);
        System.out.println(context);
        return "success";
    }

dali
10 声望0 粉丝

引用和评论

0 条评论