现在的位置: 首页 > 综合 > 正文

Spring 格式化注解

2013年08月26日 ⁄ 综合 ⁄ 共 2387字 ⁄ 字号 评论关闭

在2009年,Spring Framework 3.0发布了,带来了很多新的功能强大的特性。 除了支持RESTful Web service的Spring Expression Language(SpEL)等主要功能外,还有一些很方便的,而且不需要太多时间学习的新的特性。这里我们介绍其中的一个:用于格式化的注解。
简介


Spring 3 提供了两个可以用于格式化数字、日期和时间的注解@NumberFormat和@DateTimeFormat,这两个标签可以用于bean的属性或方法参数上。@NumberFormat可以用来格式化任何的数字的基本类型(如int,long)或java.lang.Number的实例(如 BigDecimal, Integer)。@DateTimeFormat可以用来格式化java.util.Date、java.util.Calendar和 java.util.Long类型,也可以用于Joda Time类型的字段或参数。(Joda
Time是一个开源的包,提供了对date和time类的一些替代类)。


要指定数字或日期/时间类型的属性,只需要在其上添加 @NumberFormat或@DateTimeFormat注解接可以了。例如下面的代码:

  1. import java.math.BigDecimal;
  2. import java.util.Calendar;
  3. import java.util.Date;

  4. import org.joda.time.LocalTime;

  5. public class Employee {

  6. private String name;

  7. private double salary;
  8. private double w4AdditionalWithdraw;
  9. private int dependents;
  10. private BigDecimal visualAcuity;

  11. private Date birthDate;
  12. private Calendar hireDate;
  13. private LocalTime startTime;
  14. private long lastTimeEntry;

  15. /**
  16. * initialization block to provide sample data for display
  17. */
  18. {
  19. this.name = "John Doe";
  20. this.salary = 30100.50;
  21. this.w4AdditionalWithdraw = 0.02;
  22. this.dependents = 5;
  23. this.visualAcuity = new BigDecimal(".1");

  24. Calendar dob = Calendar.getInstance();
  25. dob.set(1964, Calendar.AUGUST, 30);
  26. this.birthDate = dob.getTime();
  27. this.hireDate = Calendar.getInstance();
  28. this.startTime = new LocalTime(8, 0);
  29. this.lastTimeEntry = (new Date()).getTime() - 10000;
  30. }

  31. public String getName() {
  32. return name;
  33. }

  34. public void setName(String name) {
  35. this.name = name;
  36. }

  37. public double getSalary() {
  38. return salary;
  39. }

  40. public void setSalary(double salary) {
  41. this.salary = salary;
  42. }

  43. public double getW4AdditionalWithdraw() {
  44. return w4AdditionalWithdraw;
  45. }

  46. public void setW4AdditionalWithdraw(double w4AdditionalWithdraw) {
  47. this.w4AdditionalWithdraw = w4AdditionalWithdraw;
  48. }

  49. public int getDependents() {
  50. return dependents;
  51. }

  52. public void setDependents(int dependents) {
  53. this.dependents = dependents;
  54. }

  55. public BigDecimal getVisualAcuity() {
  56. return visualAcuity;
  57. }

  58. public void setVisualAcuity(BigDecimal visualAcuity) {
  59. this.visualAcuity = visualAcuity;
  60. }

  61. public Date getBirthDate() {
  62. return birthDate;
  63. }

  64. public void setBirthDate(Date birthDate) {
  65. this.birthDate = birthDate;
  66. }

  67. public LocalTime getStartTime() {
  68. return startTime;
  69. }

  70. public void setStartTime(LocalTime startTime) {
  71. this.startTime = startTime;
  72. }

  73. public Calendar getHireDate() {
  74. return hireDate;
  75. }

  76. public void setHireDate(Calendar hireDate) {
  77. this.hireDate = hireDate;
  78. }

  79. public long getLastTimeEntry() {
  80. return lastTimeEntry;
  81. }

  82. public void setLastTimeEntry(long lastTimeEntry) {
  83. this.lastTimeEntry = lastTimeEntry;
  84. }

  85. }

复制代码




这段代码中我们没有添加注解。如果我们使用Spring 份额Form 标签将这个bean中的数据用于显示的时候,我们会得到类似下图的结果:
Fig1_FormWithoutAnnotations.JPG 

抱歉!评论已关闭.