码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC中参数格式化

时间:2015-04-29 10:10:57      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:springmvc   datetimeformat   参数格式化   

     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。





    

springMVC中参数格式化

标签:springmvc   datetimeformat   参数格式化   

原文地址:http://blog.csdn.net/u013516966/article/details/45341753

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!