91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring?MVC怎么實現GET請求接收Date類型參數

發布時間:2022-07-05 10:25:19 來源:億速云 閱讀:327 作者:iii 欄目:開發技術

這篇“Spring MVC怎么實現GET請求接收Date類型參數”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Spring MVC怎么實現GET請求接收Date類型參數”文章吧。

SpringMVC GET請求接收Date類型參數

Controller方法定義

@GetMapping('/list-by-date')
ResponseBean listByUserIdAndDateRange(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date fromDate) 
    System.out.println(fromDate)
}

請求

curl -X GET http://localhost/list-by-date?fromDate=2019-02-27 00:01:00

SpringMVC接收哪些類型參數參數

支持的數據類型

基本類型參數:

包括基本類型和 String 類型

POJO 類型參數:

包括實體類,以及關聯的實體類

數組和集合類型參數:

包括 List 結構和 Map 結構的集合(包括數組)

SpringMVC 綁定請求參數是自動實現的,但是要想使用,必須遵循使用要求。

使用要求

如果是基本類型或者 String 類型:

要求我們的參數名稱必須和控制器中方法的形參名稱保持一致。(嚴格區分大小寫)

如果是 POJO 類型,或者它的關聯對象:

要求表單中參數名稱和 POJO 類的屬性名稱保持一致。并且控制器方法的參數類型是 POJO 類型。

如果是集合類型,有兩種方式:

  • 第一種:

要求集合類型的請求參數必須在 POJO 中。在表單中請求參數名稱要和 POJO 中集合屬性名稱相同。

給 List 集合中的元素賦值,使用下標。

給 Map 集合中的元素賦值,使用鍵值對。

  • 第二種:

接收的請求參數是 json 格式數據。需要借助一個注解實現。

注意:

它還可以實現一些數據類型自動轉換。內置轉換器全都在:

org.springframework.core.convert.support 包下。有:
java.lang.Boolean -> java.lang.String : ObjectToStringConverter
java.lang.Character -> java.lang.Number : CharacterToNumberFactory
java.lang.Character -> java.lang.String : ObjectToStringConverter
java.lang.Enum -> java.lang.String : EnumToStringConverter
java.lang.Number -> java.lang.Character : NumberToCharacterConverter
java.lang.Number -> java.lang.Number : NumberToNumberConverterFactory
java.lang.Number -> java.lang.String : ObjectToStringConverter
java.lang.String -> java.lang.Boolean : StringToBooleanConverter
java.lang.String -> java.lang.Character : StringToCharacterConverter
java.lang.String -> java.lang.Enum : StringToEnumConverterFactory
java.lang.String -> java.lang.Number : StringToNumberConverterFactory
java.lang.String -> java.util.Locale : StringToLocaleConverter
java.lang.String -> java.util.Properties : StringToPropertiesConverter
java.lang.String -> java.util.UUID : StringToUUIDConverter
java.util.Locale -> java.lang.String : ObjectToStringConverter
java.util.Properties -> java.lang.String : PropertiesToStringConverter
java.util.UUID -> java.lang.String : ObjectToStringConverter
......
如遇特殊類型轉換要求,需要我們自己編寫自定義類型轉換器。

自定義類型轉換器

  • 第一步:定義一個類,實現 Converter 接口,該接口有兩個泛型。

public interface Converter<S, T> {//S:表示接受的類型,T:表示目標類型
    /**
     * 實現類型轉換的方法
     */
    @Nullable
    T convert(S source);
}
/**
 * 自定義類型轉換器
 */
public class StringToDateConverter implements Converter<String, Date> {
    /**
     * 用于把 String 類型轉成日期類型
     */
    @Override
    public Date convert(String source) {
        DateFormat format = null;
        try {
            if(StringUtils.isEmpty(source)) {
                throw new NullPointerException("請輸入要轉換的日期");
            }
            format = new SimpleDateFormat("yyyy-MM-dd");
            Date date = format.parse(source);
            return date;
        } catch (Exception e) {
            throw new RuntimeException("輸入日期有誤");
        }
    }
}
  • 第二步:在 spring 配置文件中配置類型轉換器。

spring 配置類型轉換器的機制是,將自定義的轉換器注冊到類型轉換服務中去。

<!-- 配置類型轉換器工廠 -->
<bean id="converterService"  class="org.springframework.context.support.ConversionServiceFactoryBean">
<!-- 給工廠注入一個新的類型轉換器 -->
    <property name="converters">
     <array>
     <!-- 配置自定義類型轉換器 -->
         <bean class="com.itheima.web.converter.StringToDateConverter"></bean>
     </array>
     </property>
</bean>
  • 第三步:在 annotation-driven 標簽中引用配置的類型轉換服務

<!-- 引用自定義類型轉換器 -->
<mvc:annotation-driven  conversion-service="converterService"></mvc:annotation-driven>

使用 ServletAPI 對象作為方法參數

    @RequestMapping("/testServletAPI")
    public String testServletAPI(HttpServletRequest request,
                                 HttpServletResponse response,
                                 HttpSession session) {
        System.out.println(request);
        System.out.println(response);
        System.out.println(session);
        return "success";
    }

以上就是關于“Spring MVC怎么實現GET請求接收Date類型參數”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中宁县| 西峡县| 商水县| 襄垣县| 正镶白旗| 敦煌市| 都安| 芒康县| 华安县| 徐水县| 长寿区| 长阳| 奉新县| 澳门| 罗田县| 根河市| 邹城市| 阿鲁科尔沁旗| 黔西| 安平县| 松江区| 青岛市| 曲松县| 当雄县| 洪雅县| 仁化县| 电白县| 卫辉市| 五原县| 贡嘎县| 保靖县| 东阳市| 多伦县| 南郑县| 上饶市| 娄烦县| 泸西县| 百色市| 盐山县| 河源市| 武川县|