讲解一下类型转换,例如在jsp页面,有一个日期类型的,jsp页面的日期类型都是String类型的,但是我后台的controller接收的是Date类型的,此时需要进行转换,如果不转换,页面会报一个400的错误。
那么就说一下解决方案
方案1:在你需要进行类型转换的controller加上下面的代码,不推荐使用,这种方式相比较比较冗余和复用,如果还有别的controller,我需要再次复制下面的代码,不是特别推荐使用
@InitBinder
public void initBinder(WebDataBinder binder) throws Exception {
// Date.class必须是与controler方法形参pojo属性一致的date类型,这里是java.util.Date
binder.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true));
}
方案2:创建Converter接口,实现Converter接口
public class CustomDateConverter implements Converter<String, Date>{ public Date convert(String source) { Date date = null; try { System.out.println(source); date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(source); } catch (Exception e) { // TODO: handle exception System.out.println("hahahahahahahaaha"); } return date; } }
public class StringTirmConverter implements Converter<String, String>{ public String convert(String source) { try { if(source!=null){ source = source.trim(); if(source.equals("")){ return null; } } } catch (Exception e) { e.printStackTrace(); } return source; } }
<!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <!-- 在webBindingInitializer中注入自定义属性编辑器、自定义转换器 --> <property name="webBindingInitializer" ref="customBinder"></property> </bean> <!-- 配置视图解析器 要求将jstl的包加到classpath --> <!-- ViewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 自定义webBinder --> <bean id="customBinder" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> <!-- 使用converter进行参数转 --> <property name="conversionService" ref="conversionService" /> </bean> <!-- 转换器 --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="com.dafei.ssm.controller.converter.CustomDateConverter"/> <bean class="com.dafei.ssm.controller.converter.StringTirmConverter"/> </list> </property> </bean>
还有另一种配置方式就是
<mvc:annotation-driven conversion-service="conversionService"/> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="com.dafei.ssm.controller.converter.CustomDateConverter" /> <bean class="com.dafei.ssm.controller.converter.StringTirmConverter"/> </list> </property> </bean>
相关推荐
Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专门用于构建可扩展和模块化的 Web 应用程序。在提供的压缩包文件中,包含了 Spring MVC 开发所需的一些核心库,这些库是 Spring MVC...
在Spring MVC框架中,数据转换和格式化是一个关键部分,它允许我们处理各种类型的输入和输出数据,确保数据能够在客户端和服务器之间正确地传递。HttpMessageConverter是Spring MVC中的核心组件,负责处理HTTP请求和...
Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...
10. **Conversion and Validation**: Spring MVC提供了数据转换和验证功能,如使用`@RequestParam`、`@PathVariable`注解自动转换参数,以及使用`@Valid`和`BindingResult`进行表单验证。 11. **Tiles or Layouts**...
10. **ConversionService**:转换服务,处理类型转换,比如将请求参数从字符串转换为其他数据类型。 11. **Validation**:Spring提供了数据验证机制,可以通过`@Valid`注解和Validator接口实现对表单数据的校验。 ...
- **消息转换器**:用于处理不同类型的请求体和响应体。 - **使用 MVC Java 编程进行高级定制**:通过 Java 配置类来定制 Spring MVC 的行为。 - **使用 MVC 命名空间进行高级定制**:XML 配置文件中的命名空间可以...
**Spring MVC 5.0.3 知识点详解** Spring MVC是Spring框架的一个核心模块,专注于构建Web应用程序。在Spring MVC 5.0.3版本中,它提供了丰富的功能和改进,使得开发者能够更高效地开发RESTful服务、处理HTTP请求、...
11. **转换器和格式化器(Converter & Formatter)**:处理请求参数和模型属性之间的类型转换,使数据绑定更加灵活。 12. **MessageSource**:处理国际化和本地化,提供多语言支持。 13. **异常处理**:通过@...
Spring MVC 是一个强大的Java框架,用于构建Web应用程序,特别是对于基于模型-视图-控制器(MVC)架构的应用。在本文中,我们将深入探讨如何利用Spring MVC创建RESTful服务,这些服务可以处理字符串、JSON和XML数据...
Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种MVC(Model-View-Controller)架构模式的实现,帮助开发者处理HTTP请求、数据绑定、...
《精通Spring MVC 4》源码是一份宝贵的资源,它为开发者提供了深入理解Spring MVC这一流行Web框架的机会。Spring MVC是Spring框架的一部分,专门用于构建高效、可维护的Web应用程序。通过阅读和研究这些源码,我们...
Spring MVC提供了一套完善的国际化支持机制,可以方便地对Web应用中的文本信息进行多语言转换。 要实现Spring MVC的国际化,通常需要以下几个步骤: 1. 创建国际化资源文件:在Spring MVC项目中,创建一个或多个...
- **HandlerAdapter**:适配器,负责调用Handler的方法,并处理预处理和后处理任务,如数据验证和类型转换。 - **ModelAndView**:包含了模型数据和视图信息,是Handler处理结果的载体。 - **ViewResolver**:...
9. **HandlerAdapter**: 处理器适配器负责调用控制器的方法,Spring MVC 内置了多种适配器来支持不同的控制器类型。 10. **View Technologies**: Spring MVC 支持多种视图技术,如JSP、Thymeleaf、Velocity等,可以...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建Web应用程序提供模型-视图-控制器(Model-View-Controller)架构。这个框架在Java Web开发中广泛应用,因其强大的功能、良好的可扩展性和易用性而备受赞誉。...
1. **类型转换异常**:当用户提交的数据不符合预期的数据类型时,Spring MVC会尝试进行类型转换。如果转换失败,可能会抛出异常,暴露敏感信息或导致应用逻辑错误。 2. **未校验输入**:如果没有对用户输入进行适当...
8. **HandlerAdapter**:适配器模式在Spring MVC中得到应用,HandlerAdapter允许DispatcherServlet与不同的Controller类型进行交互,即使Controller的实现方式不同。 9. **视图解析器(ViewResolver)**:视图解析...