SpringMVC自定义属性编辑器详解及实例

自定义springMVC的属性编辑器主要有两种方式,一种是使用@InitBinder标签在运行期注册一个属性编辑器,这种编辑器只在当前Controller里面有效;还有一种是实现自己的 WebBindingInitializer,然后定义一个AnnotationMethodHandlerAdapter的bean,在此bean里面进行注册 ,这种属性编辑器是全局的。
第一种方式:
import java.beans.PropertyEditorSupport;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class GlobalController {
@RequestMapping("test/{date}")
public void test(@PathVariable Date date, HttpServletResponse response) throws IOException
response.getWriter().write( date);
}
@InitBinder//必须有一个参数WebDataBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));
binder.registerCustomEditor(int.class, new PropertyEditorSupport() {
@Override
public String getAsText() {
// TODO Auto-generated method stub
return getValue().toString();
}
@Override
public void setAsText(String text) throws IllegalArgumentException {
// TODO Auto-generated method stub
System.out.println(text + "...........................................");
setValue(Integer.parseInt(text));
}
});
}
}
这种方式这样写了就可以了
第二种:
1.定义自己的WebBindingInitializer
package com.xxx.blog.util;
import java.util.Date;
import java.text.SimpleDateFormat;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.support.WebBindingInitializer;
import org.springframework.web.context.request.WebRequest;
public class MyWebBindingInitializer implements WebBindingInitializer {
@Override
public void initBinder(WebDataBinder binder, WebRequest request) {
// TODO Auto-generated method stub
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), false));
}
}
2.在springMVC的配置文件里面定义一个AnnotationMethodHandlerAdapter,并设置其WebBindingInitializer属性为我们自己定义的WebBindingInitializer对象
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="cacheSeconds" value="0"/>
<property name="webBindingInitializer">
<bean class="com.xxx.blog.util.MyWebBindingInitializer"/>
</property>
</bean>
第二种方式经过上面两步就可以定义一个全局的属性编辑器了。
注意:当使用了<mvc:annotation-driven />的时候,它 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean。这时候第二种方式指定的全局属性编辑器就不会起作用了,解决办法就是手动的添加上述bean,并把它们加在<mvc:annotation-driven/>的前面。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# SpringMVC自定义属性编辑器
# SpringMVC编辑器
# SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分
# SpringMVC + jquery.uploadify实现上传文件功能
# SpringMVC+bootstrap table实例详解
# springMvc注解之@ResponseBody和@RequestBody详解
# Spring+SpringMVC+MyBatis深入学习及搭建(一)之MyBatis的基础知识
# SpringMVC中MultipartFile上传获取图片的宽度和高度详解
# 编辑器
# 自己的
# 第二种
# 自定义
# 就可以
# 在此
# 希望能
# 写了
# 只在
# 有两种
# 谢谢大家
# 并把
# 两步
# 解决办法
# 第一种
# 配置文件
# 加在
# 有一个
# 这时候
# 使用了
相关文章:
宝塔建站助手安装配置与建站模板使用全流程解析
建站之星展会模版如何一键下载生成?
如何通过云梦建站系统实现SEO快速优化?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
济南专业网站制作公司,济南信息工程学校怎么样?
如何用已有域名快速搭建网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
Android自定义控件实现温度旋转按钮效果
历史网站制作软件,华为如何找回被删除的网站?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何配置WinSCP新建站点的密钥验证步骤?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
如何快速搭建高效WAP手机网站?
平台云上自助建站如何快速打造专业网站?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
建设网站制作价格,怎样建立自己的公司网站?
建站之星后台管理如何实现高效配置?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
宁波免费建站如何选择可靠模板与平台?
如何在Windows环境下新建FTP站点并设置权限?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何挑选最适合建站的高性能VPS主机?
北京的网站制作公司有哪些,哪个视频网站最好?
建站之星导航配置指南:自助建站与SEO优化全解析
建站之星收费标准详解:套餐费用及年费价格表一览
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
高防服务器租用首荐平台,企业级优惠套餐快速部署
,交易猫的商品怎么发布到网站上去?
建站主机功能解析:服务器选择与快速搭建指南
c# 在高并发场景下,委托和接口调用的性能对比
如何在香港服务器上快速搭建免备案网站?
如何在西部数码注册域名并快速搭建网站?
网站制作模板下载什么软件,ppt模板免费下载网站?
,在苏州找工作,上哪个网站比较好?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
jQuery 常见小例汇总
已有域名和空间如何搭建网站?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
详解jQuery停止动画——stop()方法的使用
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
建站主机与服务器功能差异如何区分?
建站之星如何助力网站排名飙升?揭秘高效技巧
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
深入理解Android中的xmlns:tools属性
香港服务器网站推广:SEO优化与外贸独立站搭建策略
建站主机选择指南:服务器配置与SEO优化实战技巧
建站之星如何一键生成手机站?
*请认真填写需求信息,我们会在24小时内与您取得联系。