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。





    

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。