如果一个对象里面有枚举类型的话,则Spring MVC是不能够直接进行注入的,因为它只实现了一些基本的数据类型的自动转换注入,但是其也提供了可扩展的接口,可以根据自己的需要来进行扩展。下面是一个示例:
首先:这是一个枚举类:
/** * 新闻类别 * @author: ShangJianguo * 2014-6-11 上午10:51:07 */ public enum ENews { company("0"), // 企业新闻 industry("1");// 行业新闻 private final String value; private ENews(String v) { this.value = v; } public String toString() { return this.value; } public static ENews get(int v) { String str = String.valueOf(v); return get(str); } public static ENews get(String str) { for (ENews e : values()) { if(e.toString().equals(str)) { return e; } } return null; } }
下面是个实体类:
public class News { private ENews type; private String adminuid; private String title; private String summary; private String author; private String origin; private String originurl; private String content; // 省略setter和getter方法 }
这里是controller层:
@RequestMapping(value="/news/update", method=RequestMethod.POST) @ResponseBody public boolean edit_update(Map<String, Object> model,HttpServletRequest request,News news){ String adminid = getAdminid(); news.init(adminSO.getAdminByAdminid(adminid).getUid()); if (news != null) { if (newsSO.update(news)) { return true; } } return false; }
但是,到了这里程序还不能够正常的运行,真正的要点在下面,写一个枚举的转换类(Converter):
public class StringToENewsConverter implements Converter<String, ENews>{ /* (non-Javadoc) * @see com.fasterxml.jackson.databind.util.Converter#convert(java.lang.Object) * @author: ShangJianguo * 2014-6-12 下午4:56:30 */ @Override public ENews convert(String source) { String value = source.trim(); if ("".equals(value)) { return null; } return ENews.get(Integer.parseInt(source)); } }
然后在spring mvc的配置文件中进行配置:
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.ngenius.core.converters.StringToENewsConverter" /> </set> </property> </bean>
这样spring在进行对对象的字段进行注入的时候就可以运行了,直接把前端接收来的内容转换为ENews类型,进行封装。
私人广告模块。。。下面依然是我建的一个公众帐号,可以关注一下哦,谢谢
相关推荐
在 Spring MVC 框架中,为对象自动注入枚举类型是一项非常有用的功能。然而,默认情况下,Spring MVC 只能自动转换基本数据类型,枚举类型需要特殊处理。在本篇文章中,我们将详解如何使用 Spring MVC 自动为对象...
2. 数据字典:提供数据字典管理功能,方便维护系统中的枚举类型数据,降低了代码的耦合度,使系统更加灵活。 3. 日志记录:系统自动记录操作日志,便于追踪问题和审计,为系统运维提供依据。 4. 异常处理:具备...
- **为Java 5 更新的API:** Spring Framework 3.0 对 Java 5 提供了更好的支持,包括使用泛型和枚举等功能。 - **Spring 表达式语言(SPEL):** SPEL 是一种强大的表达式语言,可以在运行时查询和操作对象图。 - *...
随后的2006年,Spring 2.0带来了重大改进,支持JSR-250注解、Java 5的枚举类型以及更多模块化设计。2009年,Spring 3.0发布,全面支持Java EE 6,增加了对RESTful服务、Groovy的支持,并引入了Spring Expression ...
Spring2.x全面支持Java5的特性,包括泛型、枚举、注解等,这使得代码更安全,类型检查更严格。 8. **容器改进** Spring2.x的Bean容器有所增强,支持基于ClassPath的自动扫描,可以自动发现和注册带有特定注解的类...
4. **增强了对Java 5特性的支持**:包括对枚举类型的支持以及对注解的更广泛的应用等。 ### 三、Spring的核心概念 在深入学习Spring框架之前,了解其核心概念是非常重要的,这些概念包括但不限于: 1. **IoC...
Spring 2.1 还引入了对Java 5和6特性的支持,如枚举类型、注解和泛型。这使得Spring框架能够更好地利用现代Java语言的特性,提高了代码的可读性和可维护性。 在性能方面,Spring 2.1 通过优化和调整,提升了框架的...
- **自动装配**:Spring支持基于类型匹配的自动装配,减少了显式配置的负担。 - **属性占位符**:Spring支持使用占位符来引用外部配置文件中的值,增强了系统的灵活性。 #### 五、面向切面编程(AOP) - **AOP基础*...
- **更好的并发支持**:Spring 3.0引入了对Java 5及更高版本特性的支持,如泛型和枚举类型。 - **新的测试工具**:提供了更强大的测试工具,帮助开发者编写单元测试和集成测试。 #### 七、实践案例与应用场景 - **...
测试框架包含模拟对象、TestContext框架、Spring MVC测试和Web测试客户端,确保代码的高质量和可靠性。 Spring的版本演变与Java标准版(JDK)紧密相关,从早期支持J2EE 1.3,到后来兼容Java EE 6和7,再到目前对...
通过这种方式,对象不再负责创建它们自己的依赖对象,而是通过配置文件或注解来声明这些依赖,这些依赖由Spring容器自动注入。 ##### 1.2 模块划分 Spring框架被划分为多个模块,每个模块提供了特定的功能: - **...
- **Autowiring collaborators**: 自动装配协作对象,简化了配置。 - **Checking for dependencies**: 检查Bean是否存在未满足的依赖。 - **Method Injection**: 方法级别的依赖注入。 **3.4 Bean的作用域** - **...
- 结合 `ModelAndView` 或直接返回对象,Spring MVC 将自动处理视图渲染或 JSON 反序列化。 5. **HTTP 响应状态码和头信息** - 通过 `ResponseEntity` 类设置自定义的 HTTP 状态码和头信息。 - 使用 `...
14. **属性编辑器**:Spring允许自定义属性编辑器(PropertyEditor)来进行类型转换,如将字符串转换为特定类型,如日期、枚举等。 综上所述,Spring框架是一个全面的开发平台,提供了许多工具和机制来简化Java应用...
依赖注入(DI)是一种设计模式,它通过外部机制为对象提供依赖关系,而不是在对象内部实现这些依赖。Spring通过依赖注入机制实现了控制反转(Inversion of Control, IoC)。在传统编程中,一个类负责创建其依赖的...
Spring 3.0引入了通用类型转换系统和字段格式化系统,能够自动处理不同类型数据之间的转换,简化了数据处理的复杂度。 #### 3.3 数据访问与Web层增强 针对数据访问和Web层,Spring 3.0提供了更丰富的支持,包括...
Spring3.1对Java5进行了全面的更新,利用了Java5中的新特性,如泛型、枚举和注解,这使得代码更加类型安全且易于维护。 #### 2.2 改进的文档 Spring3.1的文档得到了显著的改进,提供了更清晰的示例和解释,帮助...
- **依赖注入**(Dependency Injection, DI)是一种设计模式,允许将对象间的依赖关系通过外部构造并注入到对象中,而不是在对象内部自行创建依赖。 - **控制反转**(Inversion of Control, IoC)是指程序的控制流程...
Spring MVC作为Spring框架的一部分,为构建基于模型-视图-控制器(Model-View-Controller,MVC)架构的Web应用提供了强大的工具。它支持RESTful风格的URL设计,简化了视图的渲染,并且通过HandlerMapping和...
依赖注入是Spring的核心特性之一,它允许在运行时自动满足对象的依赖关系,从而提高了代码的松耦合性和可测试性。依赖可以通过构造函数、setter方法或字段注入方式实现。 Spring Framework 3.0.0 RC1不仅巩固了其在...