springMVC中参数格式化
SpringMVC中的数据编辑器主要用于在数据传递过程中的数据类型转化,例如:我们的前端有一个“2015-04-28”的日期格式的字符串,我们在将其传递时,直接转化为我们所需要的Date类型,这是后就需要属性编辑器。
在这里我们仍然使用日期类型转换为例:
需要导入包:joda-time-2.1.jar
index.jsp
<form action="date" method="post">
date:<input type="text" id="date" name="date"/><br/>
<input type="submit" value="date"/>
</form>
Controller
@InitBinder
protected void initBinder(WebDataBinder wdb)
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
wdb.registerCustomEditor(Date.class,new CustomDateEditor(sdf,true));
}
@RequestMapping("/date")
public String date(@RequestParam("date") Date date)
{
System.out.println(date);
return "";
}
当我们点击按钮发送请求传递输入yyyy-MM-dd格式的字符串时,就会被识别然后通过参数注解Date类型的参数,就可以实现转换:public String date(@DateTimeFormat(pattern="yyyy-MM-dd") @RequestParam("date") Date date)。@InitBinder是一个初始化编辑器绑定,会将我们指定的编辑器绑定到该Controller中,因此@InitBinder只在当前的Controller中有效。通过registerCustomEditor注册一个我们自己定义的日期编辑器,SpringMVC在参数的传递过程中,默认是不能识别yyyy-MM-dd格式的数据,因此通过以上方式就实现参数类型的转换。
其实对日期格式的转换在SpringMVC提供了一个非常简单方式那就是是使用@DateTimeFormat注解,将 该注解注释到接受参数的形参前面,然后指定其属性pattern的值,“yyyy-MM-dd” 或"yyyy/MM/dd"就可以识别前端传递的参数。
在这里提一下@RequestParam(value=“”) 的过程:当参数传递过来会尝试将字符串转换为我们所需要的类型(例如int、long),如果能转化(springMVC内置),则转化成功,否则就会报错。
在SpringMVC中提供了丰富的参数格式化,DateTimeFormetter NumberFormetter可以参考
http://www.cnblogs.com/liukemng/p/3748137.html
因此,对于一些特殊的转换我们主需要在参数使用注解,并且制定pattern。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。