加入收藏 | 设为首页 | 会员中心 | 我要投稿 湘西站长网 (https://www.0743zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Spring MVC类别转换器 Converter

发布时间:2022-10-13 03:00:36 所属栏目:语言 来源:转载
导读:   Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就
  Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了,但有时需要编写具有特定功能的类型转换器。
 
  例如,用户输入的日期可能有许多种形式,如“December 25,2014”“12/25/2014”和“2014-12-25”,这些都表示同一个日期。默认情况下,Spring 会期待用户输入的日期样式与当前语言区域的日期样式相同。例如,对于美国的用户而言,就是月/日/年的格式。如果希望 Spring 在将输入的日期字符串绑定到 LocalDate 时,使用不同的日期样式,则需要编写一个 Converter,才能将字符串转换成日期。
 
  java.time.LocalDate 类是 Java 8 的一个新类型,用来替代 java.util.Date。还需使用新的 Date/Time API 来替换旧有的 Date 和 Calendar 类。
  内置的类型转换器
  在 Spring MVC 框架中,对于常用的数据类型,开发者无须创建自己的类型转换器,因为 Spring MVC 框架有许多内置的类型转换器用于完成常用的类型转换。Spring MVC 框架提供的内置类型转换包括以下几种类型。
 
  自定义类型转换器
  当 Spring MVC 框架内置的类型转换器不能满足需求时,开发者可以开发自己的类型转换器。
 
  例如需要用户在页面表单中输入信息来创建商品信息。当输入“bianchengbang,18,1.85”时表示在程序中自动创建一个 new User,并将“bianchengbang”值自动赋给 name 属性,将“18”值自动赋给 age 属性,将“1.85”值自动赋给 height 属性。
 
  如果想实现上述应用,需要做以下 5 件事:
  创建实体类。
  创建控制器类。
  创建自定义类型转换器类。
  注册类型转换器。
  创建相关视图。
  示例
  本节示例基于《@Controller和@RequestMapping注解》一节创建的 springmvcDemo2 应用。
  1. 创建实体类
  在 net.biancheng.po 包下创建 User 实体类,代码如下。
  package net.biancheng.po;
  public class User {
      private String name;
      private Integer age;
      private Double height;
      /**省略setter和getter方法*/
  }
  2. 创建控制器类
  在 net.biancheng.controller 包下创建 UserController 控制器,代码如下。
  package net.biancheng.controller;
  import org.springframework.stereotype.Controller;
  import org.springframework.ui.Model;
  import org.springframework.web.bind.annotation.RequestBody;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestParam;
  import org.springframework.web.bind.annotation.ResponseBody;
  import net.biancheng.po.User;
  @Controller
  public class UserController {
      @RequestMapping("/addUser")
      public String addUser() {
          return "addUser";
      }
  }
  创建 ConverterController 控制器,代码如下。

(编辑:湘西站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!