2010-11-10 37 views
5

Quiero llenar una lista desplegable y no quiero seguir yendo a la base de datos. Estaba pensando en tener mi lista de países o lista de idiomas en un archivo de propiedades. De esa manera podría leerlo y luego asignarlo a una variable. Podría devolverlo a través del tipo ModelAndView.Spring MVC ¿la mejor manera de poblar la lista desplegable - archivo de propiedades?

¿Es este un buen enfoque? No estoy seguro de qué otra manera almacenar datos estáticos. No quiero mantenerlo en una clase porque será más difícil actualizarlo si necesita un cambio.

+0

+1, excelente pregunta. También podría funcionar para cosas como estados/provincias. –

+0

¿cómo podría hacerse esto técnicamente? ¿Tienes una gran propiedad larga con todos los nombres de países? Entiendo que en Spring 3 esto se puede leer en el código usando @Value. Asumo que esto debería ser una llamada estática ya que no queremos que esto suceda todas y cada una de las veces ... toda la lectura y asignación ... Todavía me pregunto cuál es el mejor enfoque ... cómo leer en estática ¿datos? ¿Alguien puede aconsejar y también dejar un ejemplo de código? Gracias... – logixplayer

Respuesta

3

¡recibí una respuesta! Si Tengo una lista de países o idiomas, cualquier cosa estática, que puede tener esto en mi primavera archivo de contexto:

<util:map id="countryList" map-class="java.util.HashMap"> 
    <entry key="CA" value="Canada"/> 
    <entry key="US" value="United States"/> 
    <entry key="PK" value="Pakistan"/> 
    <entry key="UE" value="UAE"/> 
</util:map> 

etc.

me inyecte lista de países en mi ModelAndView (o creo que se incluso puede acceder a él directamente sin ponerlo en ModelAndView primo es en el contexto global de la primavera)

y luego hacer que $ {} CountryList en mi jsp hacer -
<form:select path="country">
<form:option value="NONE" label="--- Select ---"/>
<form:options items="${countryList}" />
</form:select>

El campo de opciones se debe hacer de forma automática. Ese es el problema de, voy a intentar esto ahora! ¡Gracias!

0

También podría almacenar estos datos en la base de datos y utilizar un caché, por ejemplo, como ehCache. Como se almacenan en una base de datos, se pueden actualizar fácilmente y la memoria caché evitará ir a la base de datos cada vez que necesite esta información.

Cuestiones relacionadas