• 注册
  • 赞助本站

    • 支付宝
    • 微信
    • QQ

    感谢一直支持本站的所有人!

    • 查看作者
    • SpringMVC:类型转换

      一. 日期类型

      当我们从request中获取请求参数的时候,虽然SpringMVC能给我们自动完成大部分的类型转换,但是还是有一些类型需要我们手动转换,先看一下日期类型,首先编写一个Controller:

      import java.util.Date;
      @Controller
      public class Test {
          @RequestMapping("/getDate")
          public String testException1(Date date, Model model) {
              model.addAttribute("result", date);
              return "test";
          }
      }

      接下来当我们访问 http://localhost:8888/sm/getDate?date=2019-07-09 11:09:00,SpringMVC却没有将请求参数中的date转换为Date类型,并引发500错误。所以我们需要手动将其转换:

      @Controller
      public class Test {
          @RequestMapping("/getDate")
          public String testException1(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date, Model model) {
              model.addAttribute("result", date);
              return "test";
          }
      }

      二. 数值类型

      接下来编写获取Double类型的Controller:

      @Controller
      public class Test {
          @RequestMapping("/getNum")
          public String testException1( Double price, Model model) {
              model.addAttribute("result", price);
              return "test";
          }
      }

      同样,如果我们访问http://localhost:8888/sm/getNum?price=1,234,567.89,那么SpringMVC依旧无法将其转换为Double类型,所以我们需要手动将其转换:

      @Controller
      public class Test {
          @RequestMapping("/getNum")
          public String testException1(@NumberFormat(pattern = "#,###,###.##") Double price, Model model) {
              model.addAttribute("result", price);
              return "test";
          }
      }

      其中#,###,###.##一一般设置为你的数据类型的最大长度,这样最大长度和最小长度都可以处理,比如我们访问price=34,567.89也可以正常处理

      注意:类型转换需要配置<mvc:annotation-driven/>

      三.  总结

      1.  日期类型转换

      在形参前添加@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)注解

      2.  数值类型转换

      在形参前添加@NumberFormat(pattern = “#,###,###.##”)注解

    • 0
    • 0
    • 0
    • 344
    • 请登录之后再进行评论

      登录
    • 单栏布局 侧栏位置: