Diferencia entre revisiones de «CustomDateEditor»

De Dos Ideas.
Saltar a: navegación, buscar
(Configuración de nuestro Bean)
(Configuración de nuestro Bean)
Línea 40: Línea 40:
 
  </bean>
 
  </bean>
 
</code>
 
</code>
 +
 +
Donde el atributo fechaInvacion es del tipo java.util.Date

Revisión del 14:41 22 abr 2010

Editor de propiedades del tipo java.util.Date.

Su funcionalidad consiste en poder declarar un Date como String mediante inyección de dependecias y que sea Spring quien haga toda la transformaación.

Lo primero que debemos hacer es crear un bean que le diga a Spring que editores de propiedades vamos a usar en nuestra aplicación.

Configuración del CustomEditorConfigurer

   <bean id="customEditorConfigurer"
       class="org.springframework.beans.factory.config.CustomEditorConfigurer">
       <property name="customEditors">
           <map>
               <entry key="java.util.Date">
                   <bean class="org.springframework.beans.propertyeditors.CustomDateEditor">
                       <constructor-arg index="0">
                           <bean class="java.text.SimpleDateFormat">
                               <constructor-arg value="dd/MM/yyyy"/>
                           </bean>
                       </constructor-arg>
                       <constructor-arg index="1" value="false"/>
                   </bean>
               </entry>
           </map>
       </property>
   </bean>


CustomEditorConfigurer es un BeanPostProcessor que carga los editores de propiedades en la BeanFactory. Cuando Spring detecte que tiene una propiedad del tipo java.util.Date llamará a su editor de propiedades correspondiente, en este caso CustomDateEditor. El constructor de CustomDateEditor recibe dos parámetros un DateFormat, que permite definir el formato de fecha esperado y un booleano "allowEmpty" para ver si admite el valor nulo.

Configuración de nuestro Bean

<bean id="dao.InvasorDao" class="com.dosideas.dao.impl.InvasorDaoImpl">

    <property name="fechaInvacion" value="01/01/1980"/>
</bean>

Donde el atributo fechaInvacion es del tipo java.util.Date