最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC處理參數(shù)中的枚舉類型通用實現(xiàn)方法

 更新時間:2018年11月22日 16:31:34   作者:瘋狂阿賈克斯  
這篇文章主要給大家介紹了關于Spring MVC處理參數(shù)中的枚舉類型通用實現(xiàn)方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧

前言

在開發(fā)的過程中,會涉及到大量的枚舉類型數(shù)據(jù),我們都知道,Springmvc本身能自動轉(zhuǎn)換很多的數(shù)據(jù)類型,也支持你自定義轉(zhuǎn)換類型,非常靈活。

本文主要介紹的是關于Spring MVC處理參數(shù)的枚舉類型通用實現(xiàn)的相關內(nèi)容,下面話不多說了,來一起看看詳細的介紹吧

業(yè)務場景:

前端提交了枚舉的一個屬性value,想由spring來完成參數(shù)類型自動轉(zhuǎn)換成對應的枚舉。

比方有一個枚舉

@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Getter
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum RegisterStatus implements SpringConverterableEnum {
 WAITING(0, "待審核"),

 PASSED(1, "已通過"),

 REJECTED(2, "已拒絕");

 private int value;

 private String desc;
}

實現(xiàn)統(tǒng)一自定義接口

需要自動轉(zhuǎn)換的枚舉實現(xiàn)統(tǒng)一自定義接口,可隨意定義,此處直接用get方法

public interface SpringConverterableEnum {
int getValue();
}

實現(xiàn)ConverterFactory

實現(xiàn)某一個class的類型自動轉(zhuǎn)換,實現(xiàn)converter接口。要實現(xiàn)能支持多種枚舉的通用轉(zhuǎn)換,應當實現(xiàn)ConverterFactory接口。

實現(xiàn)中利用class提供的getEnumConstants來獲得任意枚舉類型的values

public class ValuedEnumConverter implements ConverterFactory<String, SpringConverterableEnum> {
 @Override
 public <T extends SpringConverterableEnum> Converter<String, T> getConverter(Class<T> targetType) {
 return new IntegerToEnum(targetType);
 }

 private class IntegerToEnum<T extends SpringConverterableEnum> implements Converter<String, T> {

 private final T[] values;

 public IntegerToEnum(Class<T> targetType) {
  values = targetType.getEnumConstants();
 }

 @Override
 public T convert(String source) {
  for (T t : values) {
  if (t.getValue() == Integer.valueOf(source)) {
   return t;
  }
  }
  return null;
 }
 }
}

注冊到Spring中

<mvc:annotation-driven conversion-service="conversionService"/>
 <bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionService">
 <property name="converters">
  <list>
  <bean class="com... ValuedEnumConverter"/>
  </list>
 </property>
 </bean>

之后,form或者ajax提交registerStatus=1時,則會自動轉(zhuǎn)換為枚舉對象。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • springmvc接收json串,轉(zhuǎn)換為實體類List方法

    springmvc接收json串,轉(zhuǎn)換為實體類List方法

    今天小編就為大家分享一篇springmvc接收json串,轉(zhuǎn)換為實體類List方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Java?詳解Map集合之HashMap和TreeMap

    Java?詳解Map集合之HashMap和TreeMap

    本章具體介紹了HashMap、TreeMap兩種集合的基本使用方法和區(qū)別,圖解穿插代碼實現(xiàn)。?JAVA成仙路從基礎開始講,后續(xù)會講到JAVA高級,中間會穿插面試題和項目實戰(zhàn),希望能給大家?guī)韼椭?/div> 2022-03-03
  • 詳解spring cloud ouath2中的資源服務器

    詳解spring cloud ouath2中的資源服務器

    這篇文章主要介紹了spring cloud ouath2中的資源服務器的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • springboot中server.ssl.key-store配置路徑的問題小結(jié)

    springboot中server.ssl.key-store配置路徑的問題小結(jié)

    這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問題,文中還記錄了Spring Boot SSL(https)實例,介紹在web程序中使用自簽名的SSL(HTTPS)證書及創(chuàng)建SSL認證,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Spring Cloud體系實現(xiàn)標簽路由的方法示例

    Spring Cloud體系實現(xiàn)標簽路由的方法示例

    這篇文章主要介紹了Spring Cloud體系實現(xiàn)標簽路由的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 全網(wǎng)最詳細Hutool工具詳解

    全網(wǎng)最詳細Hutool工具詳解

    Hutool的目標是使用一個工具方法代替一段復雜代碼,從而最大限度的避免“復制粘貼”代碼的問題,徹底改變我們寫代碼的方式。這篇文章主要介紹了全文最詳細Hutool工具詳解,需要的朋友可以參考下
    2021-12-12
  • Java中綴表達式轉(zhuǎn)后綴表達式流程詳解

    Java中綴表達式轉(zhuǎn)后綴表達式流程詳解

    中綴表達式是一個通用的算術或邏輯公式表示方法。,中綴表達式不容易被計算機解析,但仍被許多程序語言使用,因為它符合人們的普遍用法。本文介紹了實現(xiàn)中綴表達式的方法,需要的可以參考一下
    2022-09-09
  • MyBatis還是JPA?終于有答案了

    MyBatis還是JPA?終于有答案了

    這篇文章主要介紹了MyBatis還是JPA,中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • springBoot使用openfeign來遠程調(diào)用的實現(xiàn)

    springBoot使用openfeign來遠程調(diào)用的實現(xiàn)

    這篇文章主要介紹了springBoot使用openfeign來遠程調(diào)用的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 使用Java編寫串口程序的流程步驟

    使用Java編寫串口程序的流程步驟

    本文將介紹如何使用Java編寫串口程序,包括串口的基本概念、Java串口通信API的使用、串口程序的開發(fā)流程以及一些常見問題的解決方法等,希望通過本文的介紹,讀者能夠?qū)κ褂肑ava編寫串口程序有一個基本的了解,并能夠?qū)嵺`和應用于實際項目中
    2023-11-11

最新評論

定襄县| 山阳县| 万载县| 万安县| 蕉岭县| 凤庆县| 贡嘎县| 丹寨县| 永清县| 海口市| 武汉市| 军事| 津南区| 勐海县| 崇仁县| 青冈县| 星子县| 奎屯市| 盐亭县| 游戏| 萝北县| 张家口市| 滁州市| 张家口市| 信丰县| 会理县| 高州市| 平罗县| 台州市| 邵武市| 淮阳县| 高唐县| 长海县| 新昌县| 黄大仙区| 涿州市| 白城市| 柳林县| 东阳市| 玉树县| 海盐县|