`
yinghuayu1324117
  • 浏览: 67619 次
  • 性别: Icon_minigender_2
  • 来自: 保定
文章分类
社区版块
存档分类

定制属性解析器

阅读更多

定制属性解析器

1JavaBean的接口java.beans.PropertyEditor提供将字符串映射成非String类型的方法(其直接实现类为PropertyEditorSupport:

1)、getText( ):返回一个属性值的字符串

2)setAsText(String text):将传递进来的字符串赋给Bean的属性

2Spring提供了几个建立在PropertyEditorSupport之上的定制编译器:

1URLEditor:将字符串与java.net.URL 相互转换

2ClassEditor:使用包含全称类名的字符串设置java.lang.Class属性

3CustomDateEditor:使用某种java.text.DateFormat对象将字符串设置给java.util.Date属性

4FileEditor:使用包含文件路径的字符串设置java.io.File属性

5LocalEditor:使用包含地域性息(如:en_US)的字符串设置java.util.Local属性

6StringArrayPropertyEditor:将一个包含逗号的String转换成String数组属性

7StringTrimmerEditor:自动修正字符串属性,可选择将字符串转变成null

3案例分析:

cn.csdn.service. AddressServiceImpl

package cn.csdn.service;

public class AddressServiceImpl {

    private String address;

    private String code;

    private String tel;

    省略了setget方法

}

cn.csdn.service. EmpServiceImpl

package cn.csdn.service;

public class EmpServiceImpl {

    /** 姓名 */

    private String name;

    /** 职位 */

    private String title;

    /** 家庭住址 */

    private AddressServiceImpl homeAddress;

    /** 公司地址 */

    private AddressServiceImpl companyAddress;

省略了setget方法

}

cn.csdn.editer. AddressEditer

package cn.csdn.editer;

import java.beans.PropertyEditorSupport;

import cn.csdn.service.AddressServiceImpl;

public class AddressEditer extends PropertyEditorSupport{

    @Override

    public void setAsText(String text) throws IllegalArgumentException {

       if(text!=null&&!text.trim().equals("")){

           System.out.println(text);

           String str[]=text.split("-");

           if(str.length>2){

              AddressServiceImpl asi=new AddressServiceImpl();

              asi.setAddress(str[0]);

              asi.setCode(str[1]);

              asi.setTel(str[2]);

              setValue(asi);

           }

       }

       setValue(null);

    }

}

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<!-- 定义一个自定义编译器 -->

<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">

    <property name="customEditors">

       <map>

           <entry key="cn.csdn.service.AddressServiceImpl">

              <bean class="cn.csdn.editer.AddressEditer"></bean>

           </entry>

       </map>

    </property>

</bean>

<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl" scope="singleton">

    <property name="name"><value>kouxiaolin</value></property>

    <property name="title"><value>student</value></property>

<!—一般写法-->

    <property name="homeAddress">

       <bean class="cn.csdn.service.AddressServiceImpl">

           <property name="address"><value>保定</value></property>

           <property name="code"><value>071000</value></property>

           <property name="tel"><value>15530232157</value></property>

       </bean>

    </property>

    <!-- 采用 自定义的属性编译器解析-->

    <property name="companyAddress">

       <value>衡水-073000-15530232157</value>

    </property>

</bean>

</beans>

 

 

分享到:
评论

相关推荐

    fastjson解析器和生成器-其他

    fastjson是一个性能很好的Java语言实现的JSON解析器和生成器,来自阿里巴巴的工程师开发。 Fastjson特点: 在服务器端和android客户端中提供最佳性能 提供简单的toJSONString()和parseObject()方法,将Java对象...

    Html:基于原生Html解析进行功能扩充和定制的Html解析器

    基于原生Html解析进行功能扩充和定制的Html解析器 增加的功能 优化引用的显示效果 优化无序列表的显示效果 增加argb、rgb和16进制颜色的支持 增加对code标签和代码块的支持 增加了对text-indent属性的支持 Gradle ...

    论文研究-软件体系结构的属性图文法描述及其约束验证.pdf

    摘要:在前人工作的基础上,使用了一种利于约束...在对属性图文法系统AGG的图形解析器进行定制和改进的基础上,设计并实现了体系结构自动检查器。该检查器已应用于面向体系结构的服务集成开发平台ArtemisARC系统中。

    remark-shortcodes:定制的Markdown语法解析器,用于注释,增加了对短代码的支持

    一个自定义的Markdown语法解析器,用于,它增加了对短代码的支持。 2021年1月更新 由于其解析器更改,此程序包不适用于Remark v13 +: 如果您要解决,请参。 如果您想要类似的功能但使用不同的语法-请参阅核心...

    Smart-Net-Resolver:依赖关系解析器库

    Smart.Resolver .NET-.NET的解析器库这是什么? Smart.Resolver .NET是简化的解析程序库,是Ninject的降级版本。 ASP.NET Core /通用主机支持Xamarin支持(均支持代码生成模式和反射模式) 支持瞬态,单例,容器...

    SyliusAkeneoPlugin:插件允许将数据从Akeneo PIM导入到Sylius存储中

    分类器解析器 产品选件解析器 频道解析器 状态解析器 值处理程序解析器 值处理程序 产品协会进口商 属性选项导入器 贡献 运行插件测试 使用插件打开Sylius 执照 学分 用markdown-toc生成的目录 要求 PHP ^7.3 ...

    aristotle:高度可定制的新闻收集器

    Aristotle是一个高度可定制的工具,可从站点收集链接。... 解析器:在解析阶段,如果需要,标题和描述字符串可以根据给定的参数进行修剪database : dialect : mysql+pymysql url : localhost port : 330

    podcast-feed-parser:一个高度可定制的软件包,用于将播客feed提取和解析为简单且易于管理JavaScript对象。 与节点一起使用或在浏览器中使用

    播客饲料解析器 一个高度可定制的软件包,用于将播客feed提取和解析为简单且易于管理JavaScript对象。 与节点一起使用,并在浏览器中使用。 概述 默认情况下, podcast-feed-parser将解析一个podcast的xml feed,...

    Java核心技术II(第8版)

    2.6.1 使用SAX解析器 2.6.2 使用StAX解析器 2.7 生成XML文档 2.7.1 使用StAX写出XML文档 2.8 XSL转换 第三章 网络 3.1 连接到服务器 3.1.1 套接字超时 3.1.2 因特网地址 3.2 实现服务器 3.2.1 为多个客户端服务 ...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    4.5.2 定制属性编辑器 91 4.6 类型转换器 126 4.6.1 系统类型转换器 126 4.6.2 定制自己的类型转换器 128 4.7 实现自定义属性 138 4.8 本章总结 145 第5章 事件和数据回发机制 146 5.1 控件事件和数据回发...

    jeeconfigexample:示例JEE 7应用程序演示了使用嵌入式Wildfly的自定义deltaspike配置和调整后的Arquillian测试

    #JEE配置示例,使用deltaspike定制属性文件解析器,并使用嵌入的Wildfly进行Arquillian测试 示例JEE 7应用程序演示了使用嵌入式Wildfly的自定义deltaspike属性文件配置和调整后的Arquillian测试。 应用程序框架是...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    4.5.2 定制属性编辑器 91 4.6 类型转换器 126 4.6.1 系统类型转换器 126 4.6.2 定制自己的类型转换器 128 4.7 实现自定义属性 138 4.8 本章总结 145 第5章 事件和数据回发机制 146 5.1 控件事件和数据回发...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    4.5.2 定制属性编辑器 91 4.6 类型转换器 126 4.6.1 系统类型转换器 126 4.6.2 定制自己的类型转换器 128 4.7 实现自定义属性 138 4.8 本章总结 145 第5章 事件和数据回发机制 146 5.1 控件事件和数据回发...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    4.5.2 定制属性编辑器91 4.6 类型转换器126 4.6.1 系统类型转换器126 4.6.2 定制自己的类型转换器128 4.7 实现自定义属性138 4.8 本章总结145 第5章 事件和数据回发机制146 5.1 控件事件和数据回发概述146 ...

    全面掌握Vue:面试题集锦与解析

    面试题涵盖了Vue的响应式系统原理、组件生命周期、计算属性、侦听器、条件渲染、列表渲染、事件处理、表单输入绑定、组件通信、插槽使用、指令自定义、混入、Vuex状态管理和Vue Router等关键主题。这些题目不仅考察...

    spring boot实战.pdf高清无水印

    2.1.2 Spring Boot项目构建过程解析 24 2.2 使用起步依赖 27 2.2.1 指定基于功能的依赖 28 2.2.2 覆盖起步依赖引入的传递依赖 29 2.3 使用自动配置 30 2.3.1 专注于应用程序功能 31 2.3.2 运行应用程序...

    spring in action英文版

     2.4.4 定制属性编辑器  2.4.5 解析文本信息  2.4.6 监听事件  2.4.7 发布事件  2.4.8 感知其他Bean  2.5 小结  第3章 创建切面  3.1 AOP介绍  3.1.1 定义AOP术语  3.1.2 Spring的AOP...

    解析vue、angular深度作用选择器

    在 Vue 的开发中,我们经常会用到外部组件库,例如 element,当使用 element 组件库中的某一个组件的时,我们可能会希望有一些定制的地方,通常的做法是 用CSS覆盖;有时层级不够就要另辟他径。 less使用/deep/ css...

    Spring中文帮助文档

    13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. ...

Global site tag (gtag.js) - Google Analytics