Spring MVC自动为对象注入枚举数据
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自动为对象注入枚举数据相关推荐
- Spring boot的Spring MVC自动配置原理
Spring MVC自动配置 搜索WebMvcAutoConfiguration 查询ContentNegotiatingViewResolver ContentNegotiatingViewReso ...
- spring mvc 自动生成代码
spring mvc 自动生成代码 generator mybaits 详细配置: 目录结构 执行命令 OK git:https://gitee.com/xxoo0_297/generator.git ...
- Spring boot的Spring MVC自动配置
自动配置 参考官网 https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features ...
- jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示
jax-rs jax-ws JSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML. 使用JAX-RS和Spring MVC都非常简单. 实际上,唯一要做的就是用JA ...
- JAX-RS 2.x与Spring MVC:返回对象列表的XML表示
JSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML. 使用JAX-RS和Spring MVC都非常简单. 实际上,唯一要做的就是用JAXB注释对从API调用返回的 ...
- Spring框架----自动按照类型注入的Autowired注解
当执行如下代码时(配置文件中未注入) private IAccountDao accountDao; public void saveAccount() {accountDao.saveAccount ...
- Spring MVC前后台交互(前台ajax传递数据,后台controller接收数据返回json对象)
1.导入jar包 2.JS中用ajax传递用户数据 var data={origin:"register",tel:tel,pwd:pwd};$.ajax({url : " ...
- Spring MVC 响应数据、作用域对象
紧耦方式完成响应: 使用:在单元方法的形参中声明request对象或者response对象,使用request对象完成转发,使用response对象完成直接响应或者重定向. 注意:使用这两种方式,单元 ...
- Spring MVC对象转换说明
在Spring MVC之前我们需要在Servlet里处理HttpServletRequest参数对象,但这个对象里的属性都是通用类型的对象(如字符串),处理起来很繁琐并且容易出错,而Spring MV ...
最新文章
- GROMACS运行参数之md.mdp文件详解
- 关于NB-IoT,没有比这篇更通俗易懂的啦!
- Struts2与Webwork2的区别
- 一个关于native sql的程序
- 【图像分割应用】医学图像分割(二)——心脏分割
- stm32g474教程_STM32-开发入门教程
- python基础知识-8-三元和一行代码(推导式)
- Gartner:云安全的未来——中国的安全访问服务边缘架构
- 手把手教你配置VS Code 远程开发工具,工作效率提升N倍
- 如何通过使用fiddler对安卓系统设备抓包总结
- 【STM32】HAL库 STM32CubeMX教程十一---DMA (串口DMA发送接收)
- hdu 1054 Strategic Game
- 《算法设计与分析》期末不挂科
- 【Excel2019(六):数据透视表】【创建数据透视表+更改数据透视表汇总方式+数据透视表中的组合+汇总多列数据+创建计算字段+生成多张工作表】
- Windows 11 右键菜单反应慢解决
- 基于Android手机酒店客房预订系统
- 修改jsp代码之后浏览器报500错误问题以及解决方法
- 费曼技巧:一张白纸提高学习效率
- java输出到空心三角形_java经典算法_019打印三角形(空心,实心) | 学步园
- 云南省最好的计算机学校排名,云南学校排名
热门文章
- cart算法_ID3、C4.5、CART决策树算法
- android横向纵向切换,【报Bug】安卓竖屏切换到横屏后,再切换回竖屏,不能正常还原...
- Set的5种遍历方式
- oracle alert.log查找,oracle alert.log位置
- 什么叫做展望_开学季:有一种爱, 叫做爸妈给你塞的行李箱!(附大学新生行李箱应怎么选?)...
- Python入门--代码调式
- 不会linux的php难找工作,学linux系统难吗
- cactiez v11使用配置mysql_cactiez应用监控部署手册.doc
- bootstrap媒体查询类型的值_HTMLCSS学习笔记(二十一)-- 媒体查询 + rem用法
- bzoj 4318: OSU!(概率DP)