前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

使用 SpringMVC 时,常遇到表单中日期字符串和 JavaBean 的 Date 类型的转换,而 SpringMVC 默认不支持这个格式的转换,故需要手动配置,自定义数据的绑定才能解决这个问题。
在需要日期转换的 Controller 中使用 SpringMVC 的注解 @initbinder 和 Spring 自带的 WebDateBinder 类来操作。
WebDataBinder 是用来绑定请求参数到指定的属性编辑器.由于前端传到 controller 里的值是 String 类型的,当往 Model 里 Set这个值的时候,如果 set 的这个属性是个对象,Spring 就会去找到对应的 editor 进行转换,然后再 SET 进去。
代码如下:

@InitBinder
public void initBinder(WebDataBinder binder) {  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  dateFormat.setLenient(false);  binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

需要在SpringMVC的配置文件加上

<!-- 解析器注册 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">  <property name="messageConverters">  <list>  <ref bean="stringHttpMessageConverter"/>  </list>  </property>
</bean>
<!-- String类型解析器,允许直接返回String类型的消息 -->
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"/> 

换种写法

<mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8"/></bean></mvc:message-converters>
</mvc:annotation-driven>

拓展:
spring mvc在绑定表单之前,都会先注册这些编辑器,Spring自己提供了大量的实现类,诸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等许多,基本上够用。
使用时候调用WebDataBinder的registerCustomEditor方法
registerCustomEditor源码:

public void registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor) {getPropertyEditorRegistry().registerCustomEditor(requiredType, propertyEditor);
}

第一个参数 requiredType 是需要转化的类型。
第二个参数 PropertyEditor 是属性编辑器,它是个接口,以上提到的如 CustomDateEditor 等都是继承了实现了这个接口的PropertyEditorSupport 类。
我们也可以不使用他们自带的这些编辑器类。
我们可以自己构造:

import org.springframework.beans.propertyeditors.PropertiesEditor;public class DoubleEditor extends PropertyEditorSupport {@Overridepublic void setAsText(String text) throws IllegalArgumentException {if (text == null || text.equals("")) {text = "0";}setValue(Double.parseDouble(text));}@Overridepublic String getAsText() {return getValue().toString();}
}

转自:https://www.cnblogs.com/soundcode/p/6519036.html

另一举例文章见 :SpringMvc 注解 @InitBinder 表单多对象精准绑定接收

SpringMVC注解 @initbinder 解决类型转换问题相关推荐

  1. SpringMVC注解@initbinder解决类型转换问题

    SpringMVC注解@initbinder解决类型转换问题 参考文章: (1)SpringMVC注解@initbinder解决类型转换问题 (2)https://www.cnblogs.com/an ...

  2. initbinder对ajax不起作用,详解SpringMVC注解@initbinder解决类型转换问题

    在使用SpringMVC的时候,经常会遇到表单中的日期字符串和JavaBean的Date类型的转换,而SpringMVC默认不支持这个格式的转换,所以需要手动配置,自定义数据的绑定才能解决这个问题. ...

  3. SpringMvc 注解 @InitBinder 表单多对象精准绑定接收

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. @InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或 ...

  4. springMVC注解@initbinder日期类型的属性自动转换

    在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能. 一 ...

  5. SpringMVC注解@CrossOrigin解决跨域问题

    一般的,只要网站的[协议名protocol].[主机host].[端口号port]这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用 跨域:浏览同源策略的造成,是浏览器对JavaScrip ...

  6. springmvc注解入门程序

    springnvc注解的入门程序 上一篇写的是非注解的这里补充一下注解的,相比来说还是注解简单,但是个人感觉还是非注解的好理解 建议看这篇的时候,先看看上一章,这里主要是贴代码 1.web.xml是一 ...

  7. 学习:springMVC注解

    引言 在项目中,组长说我们的@Autowired注解都是黄的 后来,组长说加上@SuppressWarnings来抑制警告信息 @SuppressWarnings 注解目标 其注解目标为类.字段.函数 ...

  8. springmvc学习笔记(10)-springmvc注解开发之商品改动功能

    springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...

  9. SpringMVC注解驱动标签做了什么操作

    怎样开启注解驱动 SpringMVC开启注解驱动 <!-- mvc的注解驱动 --><mvc:annotation-driven/> <mvc:annotation-dr ...

最新文章

  1. SpringJpa多对多映射关系
  2. 什么?超过60%的开发者都开始从Java 8 升级到 Java 11了?
  3. 最完整的Win7快捷键
  4. WinForm:进度条的实现(异步)
  5. matlab抖g是什么,MATLAB中dither抖动函数的用法
  6. 数字人民币这一年,互联网企业做了什么?
  7. PyTorch:损失函数loss function
  8. 对mysql having 的理解
  9. 2015-11-23 12:50:55
  10. Gallery 3D+倒影 滑动切换图片示例
  11. three.js视频教程2022最新
  12. 因一纸设计稿,我把竞品APP扒得裤衩不剩(上)
  13. 【Linux应用】udhcpc命令获取到ip后,但是没有生效(没有设置进去)
  14. 「超级右键」Mac上最强的右键菜单工具,让你效率飞起!
  15. Excel数据填充技巧
  16. 关于机器人方面的sci论文_科学网—2014年SCI收录机器人期刊22种目录 - 万跃华的博文...
  17. 抗击疫情 融云在行动
  18. java实现查询Word是否包含批注和修订内容
  19. nyoj71独木舟上的旅行
  20. xgboost时间序列预测matlab,LightGBM和XGBoost实现时间序列预测(2019-04-02)

热门文章

  1. [你必须知道的.NET]第二十五回:认识元数据和IL(中)
  2. 【转】SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
  3. 与计算机相关的课外活动,课外活动学生论文,关于应用型院校计算机专业课外活动相关参考文献资料-免费论文范文...
  4. JAVA的Future类
  5. go for 循环遍历数组并排序_10. Go语言流程控制:for 循环
  6. 加载中_GIS地图在项目中的加载显示
  7. 太吾绘卷第一世攻略_耽美推文-BL-仿佛在攻略一只河豚
  8. 【HDU - 6183】Color it(CDQ分治 或 动态开点线段树)
  9. 【POJ - 3253】Fence Repair(贪心,时光倒流)
  10. *【CodeForces - 195B】After Training (多解,模拟)