Spring MVC: acceder a las propiedades de un fichero desde una JSP con Expression Language (EL)

0
12327

Spring MVC: acceder a las propiedades de un fichero desde una JSP con Expression Language (EL).

0. Índice de contenidos.


1. Introducción

La mayoría de aplicaciones contienen ficheros de configuración (.xml, .properties, etc…) que parametrizan determinados comportamientos de la misma. Los datos de conexión a una base de datos, el máximo número de días para anular un pedido o el importe mínimo de un pedido pueden ser ejemplos de este tipo de propiedades.

En este tutorial vamos a ver cómo acceder a las propiedades de un fichero de configuración con Spring MVC directamente desde una JSP con Lenguaje de Expresiones (EL), haciendo uso de un bean de Spring.


2. Entorno.

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.2 Ghz Intel Core I7, 4GB DDR3).
  • Sistema Operativo: Mac OS Snow Leopard 10.6.7
  • Entorno de desarrollo: Eclipse 3.7 Indigo.
  • Spring MVC 3.1.
  • Apache Tomcat 6.0.32 con jdk 1.6.


3. Nuestro fichero de propiedades

El primer paso será crear el fichero de propiedades de la aplicación al que llamaremos propiedades.properties.

Imaginemos que nuestra aplicación es una tienda on-line. El fichero contendrá dos propiedades: una para indicar el máximo número de elementos que puede tener un pedido y otra para indicar el importe mínimo para realizar un pedido.

  • maximo.elementos.carrito: indica el máximo número de elementos de un pedido.
  • importe.minimo: importe mínimo para que se pueda realizar el pedido

El fichero de propiedades quedaría de la siguiente forma:


maximo.elementos.carrito=15
importe.minimo=25.0


4. Bean que almacena las propiedades.

Una vez tenemos definidas las propiedades, el siguiente paso será almacenarlas en un bean del que, posteriormente serán consultadas.

Nuestra clase quedaría así:


public class PropiedadesAplicacion {

	private final Integer maximoElementosCarrito;
	
	private final Float importeMinimo;

	public PropiedadesAplicacion(Integer maximoElementosCarrito, Float importeMinimo) {
		Validate.notNull(maximoElementosCarrito);
		Validate.notNull(importeMinimo);
		this.maximoElementosCarrito = maximoElementosCarrito;
		this.importeMinimo = importeMinimo;
	}
	
	public Integer getMaximoElementosCarrito() {
		return maximoElementosCarrito;
	}

	public Float getImporteMinimo() {
		return importeMinimo;
	}

	@Override
	public int hashCode() {
		return HashCodeBuilder.reflectionHashCode(this);
	}

	@Override
	public boolean equals(Object obj) {
		return EqualsBuilder.reflectionEquals(this, obj);
	}
	
}

Como se puede apreciar, el bean consta de dos atributos inmutables que pueden ser consultados mediante sus respetivos métodos get.


5. Configuración del applicationContext.xml.

El siguiente paso será adaptar el fichero de configuración de Spring para que cargue las propiedades del fichero en el bean y lo haga visible, como instacia única, para las jsp´s de la aplicación.

En el fichero de configuración debemos informar: dónde está el fichero de propiedades, el bean de propiedades y su registro en el ViewResolver para que sea visible en las vistas (en las jsp´s).

	
	<context:property-placeholder location="classpath:propiedades.properties" />

	
	
		<constructor-arg name="maximoElementosCarrito" value="${maximo.elementos.carrito}" type="java.lang.Integer"/>
		<constructor-arg name="importeMinimo" value="${importe.minimo}" type="java.lang.Float"/>
	

	
	
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
		
			
				propiedadesAplicacion
			
		
	
	

Obsérvese que para hacer visible el bean a las JSP´s de la aplicación, utilizamos la propiedad exposedContextBeanNames del viewResolver.


6. Acceso desde la jsp mediante EL (Expression Language).

En este punto ya estamos en disposición de acceder a las propiedades del bean desde una JSP. La forma de acceder mediante Expression Language sería la siguiente:


Accediendo a las propiedades desde una JSP

Máximo elementos carrito: ${propiedadesAplicacion.maximoElementosCarrito} <br/> Importe mínimo: ${propiedadesAplicacion.importeMinimo}

Y la JSP nos mostraría lo siguiente:

Nótese que el bean PropiedadesAplicacion está en la request, por lo que es posible acceder a éíl mediante un scriplet o una expresión con: (PropiedadesAplicacion) request.getAttribute(«propiedadesAplicacion»), aunque con Lenguaje de Expresiones el código queda mucho más limpio ;).


7. Referencias.


8. Conclusiones.

En este tutorial hemos visto cómo acceder a las propiedades de un fichero desde una JSP gracias a un Bean de Spring. Esta solucióún nos permitirá persistir determinadas propiedades de un fichero (no hay por qué cargar todas las propiedades del fichero en el Bean) para poder ser utilizados en una vista.

Espero que este tutorial os haya sido de ayuda. Un saludo.

Miguel Arlandy

marlandy@autentia.com

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad