您好,登錄后才能下訂單哦!
這篇“Spring MVC怎么實現GET請求接收Date類型參數”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Spring MVC怎么實現GET請求接收Date類型參數”文章吧。
@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
基本類型參數:
包括基本類型和 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>
@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類型參數”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。