欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring中的自定义编辑器

程序员文章站 2022-05-26 17:53:15
...

     spring中的自定义编辑器

 

     一个bean中有另一个bean的属性,用自定义编辑器,可以省bean标签。

编辑器的代码:

public class AddressEditer extends PropertyEditorSupport{

	@Override
	public String getAsText() {
		// TODO Auto-generated method stub
		return super.getAsText();
	}

	@Override
	public void setAsText(String text) throws IllegalArgumentException {
		// TODO Auto-generated method stub
		if(text!=null&&(!text.trim().equals(""))){
			String str[]=text.split("-");
			if(str.length==3){
				AddressServiceImpl asi=new AddressServiceImpl();
				asi.setAddress(str[0]);
				asi.setCode(str[1]);
				asi.setTel(str[2]);
				setValue(asi);
			}
		}else{
			setValue(null);
		}
	} 
}

  xml中的部分代码:

<!-- 定义一个自定义编译器 -->
	<bean id="customEditorConfigurer"
		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
		<property name="customEditors">
			<map>
			<!-- key指定的是解析类的全名 -->
				<entry key="cn.csdn.service.AddressServiceImpl">
				<!-- value指定你的解析类的解析类 -->
					<bean class="cn.csdn.util.AddressEditer"/>
				</entry>
			</map>
		</property>
	</bean>
	<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"
		scope="singleton" dependency-check="all">
		<property name="name">
			<value>guo</value>
		</property>
		<property name="age">
			<value>22</value>
		</property>
		<property name="email">
			<value>[email protected]</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>29823981239</value>
				</property>
			</bean>
		</property>
              <!--使用自定义编辑器--->
		<property name="companyddress">
<value>河北邢台-054200-7989889</value>
		</property>
	</bean>
	
  源文件已上传至:http://download.csdn.net/source/3260114