评论

收藏

[JSP] 通过Setters方式对日期属性及日期格式进行IOC注入

开发技术 开发技术 发布于:2021-10-24 11:06 | 阅读数:333 | 评论:0

本实例中还涉及到Spring中采用多个配置文件,也涉及到对日期格式的注入-------更加灵活
Date属性类: DatePropertyInjection.java
package com.zhmg.spring; 
import java.util.Date; 
public class DatePropertyInjection { 
private Date date; 
public Date getDate() { 
return date; 
} 
public void setDate(Date date) { 
this.date = date; 
} 
}
属性编辑器类:PropertyEditor.java
package com.zhmg.spring; 
import java.beans.PropertyEditorSupport; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
/** 
* 自定义属性编辑器处理java.util.Date类型的属性 
* @author Administrator 
* 
*/ 
public class PropertyEditor extends PropertyEditorSupport { 
String format = "yyyy-MM-dd"; 
public void setFormat(String format) { 
this.format = format; 
} 
@Override 
public void setAsText(String arg0) throws IllegalArgumentException { 
SimpleDateFormat dateFormat = new SimpleDateFormat(format); 
try { 
Date date = dateFormat.parse(arg0); 
this.setValue(date); 
} catch (ParseException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
} 
}
applicationContextBeans.xml
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="https://www.springframework.org/schema/beans" 
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
xmlns:aop="https://www.springframework.org/schema/aop" 
xmlns:tx="https://www.springframework.org/schema/tx" 
xsi:schemaLocation="https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
https://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
https://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> 
<bean id="dateProperty" class="com.zhmg.spring.DatePropertyInjection"> 
<property name="date"> 
<value>2009-8-28</value> 
</property> 
</bean> 
</beans>
applicationContextBeans.xml
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="https://www.springframework.org/schema/beans" 
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
xmlns:aop="https://www.springframework.org/schema/aop" 
xmlns:tx="https://www.springframework.org/schema/tx" 
xsi:schemaLocation="https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
https://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
https://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> 
<!-- 
<bean id="dateProperty" class="com.zhmg.spring.DatePropertyInjection"> 
<property name="date"> 
<value>2009-8-28</value> 
</property> 
</bean> 
--> 
<bean id="editor" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> 
<property name="customEditors"> 
<map> 
<entry key="java.util.Date"> 
<bean class="com.zhmg.spring.PropertyEditor"> 
<!—对日期格式注入--> 
<property name="format" value="yyyy-MM-dd"/> 
</bean> 
</entry> 
</map> 
</property> 
</bean> 
</beans>
测试单元:InjectionTest.java
package com.zhmg.spring; 
import junit.framework.TestCase; 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
public class InjectionTest extends TestCase { 
BeanFactory factory; 
protected void setUp() throws Exception { 
//采用通配符的方式读取所有以applicationContext开头的配置文件 
factory = new ClassPathXmlApplicationContext("applicationContext*.xml"); 
} 
public void testInjection(){ 
DatePropertyInjection dateProp = (DatePropertyInjection)factory.getBean("dateProperty"); 
System.out.println("date=" + dateProp.getDate()); 
} 
}
关注下面的标签,发现更多相似文章