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

@InitBinderprotected 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可以参考

因此,对于一些特殊的转换我们主需要在参数使用注解,并且制定pattern。

从一开始就提醒自己,世上没有后悔药吃。

springMVC中参数格式化

相关文章:

你感兴趣的文章:

标签云: