Spring MVC借助ConversionService将vo字段显示到页面

2月 4, 2018 |

本文由javacoder.cn整理,转载注明出处
Spring Mvc(数据绑定) DataBinding 过程源码分析中,我们详细介绍了ConversionService 在dataBinding阶段的使用, 本文介绍ConversionService在dataFormatting阶段(将vo的数据显示到页面上)的使用
假设我们的vo定义如下:

由于birthday属性使用了DateTimeFormat注解, 那么会向ConversionService注册一个DateFormatter对象, 当我们如下所示使用spring mvc的input tag
<sf:input path="birthday"/>最后产生如下所示的html代码
<input id="birthday" name="birthday" type="text" value="2018-02-04" />
可以看到Date对象根据@DateTimeFormat(pattern="yyyy-MM-dd")注解格式化成我们想要的格式, 但是如果我们想将birthday属性显示到<span>标签中,或者直接显示在页面中,该如何显示呢
也许你会说如下使用c标签的<c:out>
<c:out value="${userVo.birthday}"></c:out>不过最后生成的却是:
Sun Feb 04 18:19:55 CST 2018

可以按如下自定义tag来输出

AbstractDataBoundFormElementTag中实现了根据path获取BoundValue的逻辑,而且获取的BoundValue还是根据@DateTimeFormat注解正确格式化后的数据,所以完美的解决我们的问题
至于如何完整的自定义tag,请参看JSP Tag开发

Posted in: MySQL practise, spring practise

Comments are closed.