1.配置annotation-driven

  <mvc:annotation-driven ></mvc:annotation-driven>

2.在实体类上加上@NumberForma这样的注解

    @NumberFormat(pattern="#,###,###.#")
private Float price;
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date productionDate;

这样就可以了

数据格式化

* 对属性对象的输入输出进行格式化,从其本质上讲依然属于"类型转换"的范畴

* Spring在格式化模块中定义了一个实现ConversionService接口的

FormattingConversionService实现类,该实现类扩展了GenericConversionService

,因此它既具有类型转换的功能,有具有格式话的功能

* FormattingConversionServiceFactoryBean工厂类,后者用于在Spring上下

中构造前者

-FormattingConversionServiceFactoryBean内部已经注册了

NumberFormatAnnotationFormatterFactory:支持对数字类型的

属性使用@NumberFormat注解

-JodaDateTimeFormatterAnnotationFormatterFactory:支持对日期类型的属性使用

@DateTimeFormat注解

装备了FormattingConversionServiceFactoryBean后,就可以在SpringMVC入参

绑定及模型数据输出时使用注解驱动了<mvc:annotation-driven/>

默认创建的ConversionService实例即为

FormattinConversionServiceFactorybean

日期格式化

@DateTimeFormat注解可以对java.util.Date,

java.util.Calender.java.long.Long时间类型进行标注:

-pattern属性:类型为字符串,指定解析/格式化字段数据的模式,

如:"yyyy-MM-dd hh:mm:ss"

-iso属性:类型为DateTimeFormat.ISO.指定解析.格式化字段数据的ISO模式

,包括四种:ISO.NONE(不使用,)--默认.

ISO.DATE(yyyy-MM-dd)

ISO.TIME(hh:mm:ss.SSSZ).ISO.DATE(yyyt-MM-dd hh:mm:ss.SSSZ)

-style 属性:字符串类型,通过演示指定日期时间的格式,由两位字符组成,

第一位镖师日期的额格式化,第二位表式时间的格式,S:短日期/时间格式,

M:中日期/时间格式.L:长日期/时间格式.F完整日期/时间格式.

-忽略日期或者时间格式

之前配置了一个ConversionService,但是现在已经用不了了

 <!--配置ConversionService  -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="procuctConverter"/>
</set>
</property>
</bean>

但是可以换成org.springframework.format.support.FormattingConversionServiceFactoryBean

使用了这个之后既可以用自己的 可以用Spring的提供的格式化

现在考虑一个问题,如果出错了怎么办

使用BindingResult 注意BindingResult必须和他绑定的变量紧挨着

public String saveProduct(@ModelAttribute Product product,
BindingResult bindingResult, Model model) {
if(bindingResult.getErrorCount() > 0)
{
System.out.println("出错了");
for(FieldError error : bindingResult.getFieldErrors())
{
System.out.println(error.getField() +" : "+error.getDefaultMessage());
}
}
}

最新文章

  1. Android入门(十二)SQLite事务、升级数据库
  2. Html Mailto标签详细使用方法
  3. jQuery的环境配置
  4. 用飞信监控GoldenGate进程
  5. (7)基本工作流(使用AndroidStudio编辑Cocos项目)
  6. weblogic集群无法启动,提示java.lang.NumberFormatException
  7. CSS3 animation-fill-mode 属性
  8. siege
  9. ubuntu服务器移植步骤
  10. 201521123050 《Java程序设计》第13周学习总结
  11. 六,前端---viewport
  12. SpringMVC 教程 - Controller
  13. MQ、JMS 关系的理解
  14. flex"
  15. linux 下的read write 和fread fwrite
  16. 基本的java加密算法MD5等等
  17. 2018CCPC-女生专场
  18. 打开Word时出现“The setup controller has encountered a problem during install. Please ...”
  19. VS 代码整理插件推荐:CodeMaid
  20. Yum 安装并设置 MySQL

热门文章

  1. CentOS下OpenVPN客户端配置
  2. Windows 提高效率的常用快捷键
  3. python数字图像处理(18):高级形态学处理
  4. Java程序设计的DOS命令基础
  5. 读书摘要,一种新的黑客文化:programming is forgetting
  6. win7下IIS配置以及域名映射方法
  7. BatsingJSLib 2.3、Ajax上传多个文件
  8. web安全——应用(java)
  9. Python使用基础
  10. 【转】Java 项目UML反向工程转化工具