no17-第12章第二次课-多视图解析器-自定义数据格式转换器-自定义数据编辑器-ssm整合
分类: ssm 专栏: ssm框架课 标签: 多视图解析器 自定义数据格式转换 自定义编辑器 ssm整合
2023-01-12 09:31:10 1219浏览
多视图解析器,自定义数据格式转换,自定义编辑器,ssm整合
1.多视图解析器
场景:后端java提供接口给不同的终端使用,比如移动端需要json格式的,假设平板又要xml格式的话,难道我们要写很多重复的接口代码吗?
这里提供一个简便方法:引入以下jar包即可




2.自定义数据转换器
1.编写自定义类型转换器,就是之前的那个保存用户的时候有一个属性是date类型,之前的解决方法是@DateTimeFormat(pattern = "yyyy-MM-DD"),下面用全局的方式解决
package cn.cvs.web.converter;
import org.apache.log4j.Logger;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 自定义的字符串转日期转换器
*/
public class String2DateConverter implements Converter<String, Date> {
private Logger logger = org.apache.log4j.Logger.getLogger(String2DateConverter.class);
private String datePattern;
/**
* 一个日期格式参数的构造函数
* @param datePattern 日期格式
*/
public String2DateConverter(String datePattern){
logger.info("加载String2DateConverter");
this.datePattern = datePattern;
}
/**
* 具体的字符串转日期功能方法
* @param s
* @return
*/
@Override
public Date convert(String s) {
Date date = null;
try {
date = new SimpleDateFormat(datePattern).parse(s);
logger.info("String2DateConverter convert date:" + date);
} catch (ParseException e) {
logger.error("日期转换失败:" + s );
e.printStackTrace();
}
return date;
}
}
<mvc:annotation-driven conversion-service="myConversionService"
content-negotiation-manager="contentNegotiationManager">
<bean id="myConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="cn.cvs.web.converter.String2DateConverter">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
</bean>
</list>
</property>
</bean>3.装配自定义编辑器
public class BaseController {
private Logger logger = Logger.getLogger(BaseController.class);
/**
* 使用@InitBinder解决SpringMVC日期类型无法绑定的问题
* @param dataBinder
*/
@InitBinder
public void initBinder(WebDataBinder dataBinder){
logger.info("进入BaseController的initBinder方法");
dataBinder.registerCustomEditor(Date.class,
new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
}
}用到的control继承一下就OK了

4.ssm整合
这个看下一篇文章
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
暂无评论,快来写一下吧
展开评论
您可能感兴趣的博客
他的专栏
他感兴趣的技术

新业务
springboot学习
ssm框架课
vue学习
【带小白】java基础速成