栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring MVC所有控制器的一个初始化绑定器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring MVC所有控制器的一个初始化绑定器

实现一个

PropertyEditorRegistrar
注册所有自定义的
PropertyEditors
。然后在您的配置中添加
ConfigurableWebBindingInitializer
与创建的内容关联的,并将其关联
PropertyEditorRegistrar
HandlerAdapter

public class MyPropertyEditorRegistrar implements PropertyEditorRegistrar {    public void registerCustomEditors(PropertyEditorRegistry registry) {         registry.registerCustomEditor(StringWrapper.class, new StringWrapperEditor());       }}

如果您

<mvc:annotation-driven/>
的配置中有一个标签,则问题在于,使用该标签您无法将其添加
WebBindingInitializer
到适配器中,
ConfigurableWebBindingInitializer
而已添加到预配置的HandlerAdapter
旁边。您可以使用a
BeanPostProcessor
来处理和配置bean。

public class MyPostProcessor implements BeanPostProcessor {    public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {        if (bean instanceof RequestMappingHandlerAdapter) { WebBindingInitializer wbi = ((RequestMappingHandlerAdapter) bean).getWebBindingInitializer(); if (wbi == null) {     wbi = new ConfigurableWebBindingInitializer();     ((RequestMappingHandlerAdapter) bean).setWebBindingInitializer(wbi); } if (wbi instanceof ConfigurableWebBindingInitializer) {     ((ConfigurableWebBindingInitializer) wbi).setPropertyEditorRegistrar(new MyPropertyEditorRegistrar()); }        }    }}

需要一些工作,但是可行。您也可以实现自己的

WebBindingInitializer

如果没有标签,您可以简单地手动配置a

RequestMappingHandlerAdapter
并将所有内容连接在一起。

链接

  1. PropertyEditorRegistrar javadoc
  2. ConfigurableWebBindingInitializer Javadoc
  3. 参考指南链接


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号