`

spring mvc 类型转换

 
阅读更多

   讲解一下类型转换,例如在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>

 

 

 

 

 

 

 

 

 

    

 

 

0
0
分享到:
评论

相关推荐

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...

    spring mvc jar包

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专门用于构建可扩展和模块化的 Web 应用程序。在提供的压缩包文件中,包含了 Spring MVC 开发所需的一些核心库,这些库是 Spring MVC...

    Spring MVC 数据转换和格式化.docx

    在Spring MVC框架中,数据转换和格式化是一个关键部分,它允许我们处理各种类型的输入和输出数据,确保数据能够在客户端和服务器之间正确地传递。HttpMessageConverter是Spring MVC中的核心组件,负责处理HTTP请求和...

    Spring MVC使用Demo

    Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...

    spring MVC .docx

    10. **Conversion and Validation**: Spring MVC提供了数据转换和验证功能,如使用`@RequestParam`、`@PathVariable`注解自动转换参数,以及使用`@Valid`和`BindingResult`进行表单验证。 11. **Tiles or Layouts**...

    Spring MVC 基础实例源码01

    10. **ConversionService**:转换服务,处理类型转换,比如将请求参数从字符串转换为其他数据类型。 11. **Validation**:Spring提供了数据验证机制,可以通过`@Valid`注解和Validator接口实现对表单数据的校验。 ...

    Spring mvc 教程

    - **消息转换器**:用于处理不同类型的请求体和响应体。 - **使用 MVC Java 编程进行高级定制**:通过 Java 配置类来定制 Spring MVC 的行为。 - **使用 MVC 命名空间进行高级定制**:XML 配置文件中的命名空间可以...

    Spring mvc5.0.3 所有jar包

    **Spring MVC 5.0.3 知识点详解** Spring MVC是Spring框架的一个核心模块,专注于构建Web应用程序。在Spring MVC 5.0.3版本中,它提供了丰富的功能和改进,使得开发者能够更高效地开发RESTful服务、处理HTTP请求、...

    spring mvc 整合包

    11. **转换器和格式化器(Converter & Formatter)**:处理请求参数和模型属性之间的类型转换,使数据绑定更加灵活。 12. **MessageSource**:处理国际化和本地化,提供多语言支持。 13. **异常处理**:通过@...

    spring mvc restful service

    Spring MVC 是一个强大的Java框架,用于构建Web应用程序,特别是对于基于模型-视图-控制器(MVC)架构的应用。在本文中,我们将深入探讨如何利用Spring MVC创建RESTful服务,这些服务可以处理字符串、JSON和XML数据...

    spring MVC_快速入门

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种MVC(Model-View-Controller)架构模式的实现,帮助开发者处理HTTP请求、数据绑定、...

    《精通Spring MVC 4》源码

    《精通Spring MVC 4》源码是一份宝贵的资源,它为开发者提供了深入理解Spring MVC这一流行Web框架的机会。Spring MVC是Spring框架的一部分,专门用于构建高效、可维护的Web应用程序。通过阅读和研究这些源码,我们...

    Spring mvc 国际化

    Spring MVC提供了一套完善的国际化支持机制,可以方便地对Web应用中的文本信息进行多语言转换。 要实现Spring MVC的国际化,通常需要以下几个步骤: 1. 创建国际化资源文件:在Spring MVC项目中,创建一个或多个...

    Spring MVC 学习记录总结1

    - **HandlerAdapter**:适配器,负责调用Handler的方法,并处理预处理和后处理任务,如数据验证和类型转换。 - **ModelAndView**:包含了模型数据和视图信息,是Handler处理结果的载体。 - **ViewResolver**:...

    spring mvc

    9. **HandlerAdapter**: 处理器适配器负责调用控制器的方法,Spring MVC 内置了多种适配器来支持不同的控制器类型。 10. **View Technologies**: Spring MVC 支持多种视图技术,如JSP、Thymeleaf、Velocity等,可以...

    Spring MVC Helloword代码

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建Web应用程序提供模型-视图-控制器(Model-View-Controller)架构。这个框架在Java Web开发中广泛应用,因其强大的功能、良好的可扩展性和易用性而备受赞誉。...

    spring mvc 参数绑定漏洞

    1. **类型转换异常**:当用户提交的数据不符合预期的数据类型时,Spring MVC会尝试进行类型转换。如果转换失败,可能会抛出异常,暴露敏感信息或导致应用逻辑错误。 2. **未校验输入**:如果没有对用户输入进行适当...

    Spring MVC框架的各种依赖包下载

    8. **HandlerAdapter**:适配器模式在Spring MVC中得到应用,HandlerAdapter允许DispatcherServlet与不同的Controller类型进行交互,即使Controller的实现方式不同。 9. **视图解析器(ViewResolver)**:视图解析...

Global site tag (gtag.js) - Google Analytics