一、实现转换工厂,定义转换实现,如下:
package com.mafwo;import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.converter.ConverterFactory;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class OrdinalToEnumConverterFactory implements ConverterFactory<String, Enum<?>> {@Override
public <T extends Enum<?>> Converter<String, T> getConverter(Class<T> targetType) {
return new OrdinalToEnum<T>(targetType);
}private class OrdinalToEnum<T extends Enum<?>> implements Converter<String, T> {private final Class<T> enumType;public OrdinalToEnum(Class<T> enumType) {
this.enumType = enumType;
}@Override
public T convert(String source) {
// 转换成数字
int ordinal = Integer.valueOf(source);if(ordinal == Integer.MIN_VALUE) {
return null;
}Object temp = null;try {Method getCode = enumType.getMethod("getCode");Object[] objects = enumType.getEnumConstants();for(Object ob: objects){Integer temps = (Integer) getCode.invoke(ob);if(temps == ordinal){temp = ob;break;
}}} catch (NoSuchMethodException e) {e.printStackTrace();
} catch (InvocationTargetException e) {e.printStackTrace();
} catch (IllegalAccessException e) {e.printStackTrace();
}
return (T) temp;
}}}

  

二、在spring配置文件中配置:

<!--注意在配置转换鼓舞之后需要在 注解驱动处声明-->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven><bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><set>
<!-- 自动将枚举类型的序列号解析称枚举类型 -->
<bean class="com.mafwo.OrdinalToEnumConverterFactory" /></set></property>
</bean>

  

之后就可以使用注解方式自动注入枚举类型数据。

 

转载于:https://www.cnblogs.com/xiuluo--angel/p/7097013.html

Spring MVC自动为对象注入枚举数据相关推荐

  1. Spring boot的Spring MVC自动配置原理

    Spring MVC自动配置 搜索WebMvcAutoConfiguration 查询ContentNegotiatingViewResolver ContentNegotiatingViewReso ...

  2. spring mvc 自动生成代码

    spring mvc 自动生成代码 generator mybaits 详细配置: 目录结构 执行命令 OK git:https://gitee.com/xxoo0_297/generator.git ...

  3. Spring boot的Spring MVC自动配置

    自动配置 参考官网 https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features ...

  4. jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示

    jax-rs jax-ws JSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML. 使用JAX-RS和Spring MVC都非常简单. 实际上,唯一要做的就是用JA ...

  5. JAX-RS 2.x与Spring MVC:返回对象列表的XML表示

    JSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML. 使用JAX-RS和Spring MVC都非常简单. 实际上,唯一要做的就是用JAXB注释对从API调用返回的 ...

  6. Spring框架----自动按照类型注入的Autowired注解

    当执行如下代码时(配置文件中未注入) private IAccountDao accountDao; public void saveAccount() {accountDao.saveAccount ...

  7. Spring MVC前后台交互(前台ajax传递数据,后台controller接收数据返回json对象)

    1.导入jar包 2.JS中用ajax传递用户数据 var data={origin:"register",tel:tel,pwd:pwd};$.ajax({url : " ...

  8. Spring MVC 响应数据、作用域对象

    紧耦方式完成响应: 使用:在单元方法的形参中声明request对象或者response对象,使用request对象完成转发,使用response对象完成直接响应或者重定向. 注意:使用这两种方式,单元 ...

  9. Spring MVC对象转换说明

    在Spring MVC之前我们需要在Servlet里处理HttpServletRequest参数对象,但这个对象里的属性都是通用类型的对象(如字符串),处理起来很繁琐并且容易出错,而Spring MV ...

最新文章

  1. GROMACS运行参数之md.mdp文件详解
  2. 关于NB-IoT,没有比这篇更通俗易懂的啦!
  3. Struts2与Webwork2的区别
  4. 一个关于native sql的程序
  5. 【图像分割应用】医学图像分割(二)——心脏分割
  6. stm32g474教程_STM32-开发入门教程
  7. python基础知识-8-三元和一行代码(推导式)
  8. Gartner:云安全的未来——中国的安全访问服务边缘架构
  9. 手把手教你配置VS Code 远程开发工具,工作效率提升N倍
  10. 如何通过使用fiddler对安卓系统设备抓包总结
  11. 【STM32】HAL库 STM32CubeMX教程十一---DMA (串口DMA发送接收)
  12. hdu 1054 Strategic Game
  13. 《算法设计与分析》期末不挂科
  14. 【Excel2019(六):数据透视表】【创建数据透视表+更改数据透视表汇总方式+数据透视表中的组合+汇总多列数据+创建计算字段+生成多张工作表】
  15. Windows 11 右键菜单反应慢解决
  16. 基于Android手机酒店客房预订系统
  17. 修改jsp代码之后浏览器报500错误问题以及解决方法
  18. 费曼技巧:一张白纸提高学习效率
  19. java输出到空心三角形_java经典算法_019打印三角形(空心,实心) | 学步园
  20. 云南省最好的计算机学校排名,云南学校排名

热门文章

  1. cart算法_ID3、C4.5、CART决策树算法
  2. android横向纵向切换,【报Bug】安卓竖屏切换到横屏后,再切换回竖屏,不能正常还原...
  3. Set的5种遍历方式
  4. oracle alert.log查找,oracle alert.log位置
  5. 什么叫做展望_开学季:有一种爱, 叫做爸妈给你塞的行李箱!(附大学新生行李箱应怎么选?)...
  6. Python入门--代码调式
  7. 不会linux的php难找工作,学linux系统难吗
  8. cactiez v11使用配置mysql_cactiez应用监控部署手册.doc
  9. bootstrap媒体查询类型的值_HTMLCSS学习笔记(二十一)-- 媒体查询 + rem用法
  10. bzoj 4318: OSU!(概率DP)