no17-第12章第二次课-多视图解析器-自定义数据格式转换器-自定义数据编辑器-ssm整合
分类: ssm 专栏: ssm框架课 标签: 多视图解析器 自定义数据格式转换 自定义编辑器 ssm整合
2023-01-12 09:31:10 1009浏览
多视图解析器,自定义数据格式转换,自定义编辑器,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)展开评论
暂无评论,快来写一下吧
展开评论
您可能感兴趣的博客
他的专栏
他感兴趣的技术