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上传获取图片的宽度和高度详解
# 编辑器
# 自己的
# 第二种
# 自定义
# 就可以
# 在此
# 希望能
# 写了
# 只在
# 有两种
# 谢谢大家
# 并把
# 两步
# 解决办法
# 第一种
# 配置文件
# 加在
# 有一个
# 这时候
# 使用了
相关文章:
如何用VPS主机快速搭建个人网站?
建站主机CVM配置优化、SEO策略与性能提升指南
如何零成本快速生成个人自助网站?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
宝塔新建站点报错如何解决?
如何在万网自助建站平台快速创建网站?
深圳网站制作案例,网页的相关名词有哪些?
制作企业网站建设方案,怎样建设一个公司网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
上海网站制作开发公司,上海买房比较好的网站有哪些?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何快速生成橙子建站落地页链接?
定制建站哪家更专业可靠?推荐榜单揭晓
如何正确选择百度移动适配建站域名?
如何快速辨别茅台真假?关键步骤解析
如何在万网ECS上快速搭建专属网站?
魔方云NAT建站如何实现端口转发?
个人摄影网站制作流程,摄影爱好者都去什么网站?
江苏网站制作公司有哪些,江苏书法考级官方网站?
深圳网站制作的公司有哪些,dido官方网站?
如何在阿里云域名上完成建站全流程?
建站168自助建站系统:快速模板定制与SEO优化指南
如何制作网站标识牌,动态网站如何制作(教程)?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
山东网站制作公司有哪些,山东大源集团官网?
,南京靠谱的征婚网站?
如何获取开源自助建站系统免费下载链接?
利用JavaScript实现拖拽改变元素大小
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
python的本地网站制作,如何创建本地站点?
如何在万网主机上快速搭建网站?
C++如何使用std::optional?(处理可选值)
如何在企业微信快速生成手机电脑官网?
招贴海报怎么做,什么是海报招贴?
设计网站制作公司有哪些,制作网页教程?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
宝塔建站助手安装配置与建站模板使用全流程解析
如何打造高效商业网站?建站目的决定转化率
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
建站为何优先选择香港服务器?
如何用5美元大硬盘VPS安全高效搭建个人网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
javascript中的try catch异常捕获机制用法分析
如何通过FTP空间快速搭建安全高效网站?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
动图在线制作网站有哪些,滑动动图图集怎么做?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何选择适配移动端的WAP自助建站平台?
*请认真填写需求信息,我们会在24小时内与您取得联系。