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。





    

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值