Spring3 MVC 类型转换

1. Spring在进行类型转化都是基于java.beans.PropertyEditor接口。

2. 可以使用@InitBinder来进行对单个controller的类型进行操作,比如添加Date类型的转换器:

@InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                dateFormat, false));
    }

3. 也可以针对全局的转换器,实现WebBindingInitializer 接口:

public class CustomerBinding implements WebBindingInitializer {
    @Override
    public void initBinder(WebDataBinder binder, WebRequest request) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                dateFormat, false));

    }

3. <mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean

DispatcherServlet默认使用WebApplicationContext作为上下文,Spring默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”

HandlerMapping接口 -- 处理请求的映射

HandlerMapping接口的实现类:

SimpleUrlHandlerMapping  通过配置文件,把一个URL映射到Controller

DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上

HandlerAdapter接口 -- 处理请求的映射

AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上

Controller接口 -- 控制器

由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,

所以我们并没有用到这个接口。

Spring3 MVC 类型转换

时间: 2024-10-12 17:49:24

Spring3 MVC 类型转换的相关文章

在Spring3 MVC中五步配置集成注解方式Hibernate3

最近在搞一个WEB项目,以前在公司做项目用的都是JPA做ORM持久层,这次这个项目是我自己接的,我决定改一下,用Hibernate3来做ORM持久层.于是我网上搜索了Hibernate3怎么配置集成到Spring3 MVC上,发现千奇百怪,而且很多都是不是基于注解方式配置,显然那些文字上面的配置方式已经跟如今的Hibernate3注解支持方式脱节了,于是我决定自己搞一把,首先说一下网上那些配置方式的不好的地方,很多文章都提到要jdbc.properties文件与Hibernate config文

Maven3路程(六)用Maven创建Spring3 MVC项目

一.      环境 spring-framework-3.2.4.RELEASE jdk1.7.0_11 Maven3.0.5 eclipse-jee-juno-SR2-win32 二.      创建Web项目 Eclipse中创建Web项目,见前边日志<Maven3路程(三)用Maven创建第一个web项目(1)> 三.      项目依赖,配置pom.xml文件 pom.xml文件如下: <project xmlns="http://maven.apache.org/P

解决spring3 mvc中乱码的问题(转)

今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码: [html] view plaincopy <filter> <filter-name>Character Encoding</filter-name> <filter-class>com.filter.CharacterEncoding

strus2与spring3 mvc的差别

比较了一下strus2与spring3 mvc的差别: spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3mvc中,一个方法对应一个request上下文. 而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入:struts2实际上是通过setter getter方法与request打交道的:struts2中,一个Action对象对应一个reque

atitit.spring3 mvc url配置最佳实践

atitit.spring3 mvc url配置最佳实践 1. Url-pattern  bp 1 2. 通用星号url pattern的问题 1 3. Other code 1 4. 参考 2 1. Url-pattern  bp Default       <url-pattern>/</url-pattern> <url-pattern>/*</url-pattern> 中间容易的冲突....spr十为了restful风格,,才默认中配置的.. 跟个d

Spring3 MVC入门示例

Spring3 MVC 介绍: 1. Spring MVC 是Spring 框架的Web组件,能够开发WEB工程 2. 能与其它框架(Struts2)很好的集成 3.  Spring MVC 是以servlet为中心,通过DispatcherServlet把请求分发给控制器 4.  DispatcherServlet 是Spring IOC容器的完全集成,能使用Spring其他功能 5.  Spring3 MVC 支持注解技术 6. Spring3 能很好的支持JAP2.0 那接下来我们就写一个

Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释

一:配置web.xml 1)问题:spring项目中有多个配置文件mvc.xml   dao.xml 2)解决:在web.xml中 <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/xxx/*.xml</param-value> xxx表示xml文件路径    *.xml表示后缀名为xml的任意文件 </init-param&g

Spring MVC类型转换

类型转换器引入 为什么页面上输入"12",可以赋值给Handler方法对应的参数?这是因为框架内部帮我们做了类型转换的工作.将String转换成int 但默认类型转换器并不是可以将用户提交的String,转换为用户需要的所有类型.此时 ,就需要自定义类型转换器了 案例:自定义日期类型转换器 要求日期格式为:yyyy/MM/dd ---单日期(在Controller定义了一个方法,主要是对参数有要求) MyCOntroller.java package cn.controller; im

Spring3 MVC 拦截器拦截不到的问题

拦截器: com.zk.interceptors.MyInterceptor 实现了 HandlerInterceptor接口,可以拦截@RequestMapping注解的类和方法 第一种方式 <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.zk.interceptors.MyInterceptor"><