Particularmente esta entrada es sobre de uso de los Enum en Groovy en aplicaciones desarrolladas con Grails.
Paso 1 : Crear el enum
Podemos utilizar la versión simple
Podemos utilizar la versión simple
package org.blog.ejemplos
enum Dias {
LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO
}
o una versión más avanzada que nos permita añadir más funcionalidad
package org.blog.ejemplos
enum Dias {
// Datos del enum
LUNES(1, "Lunes","LUN"),
MARTES(2,"Martes","MAR"),
MIERCOLES(3,"Miércoles","MIE"),
JUEVES(4,"Jueves","JUE"),
VIERNES(5,"Viernes","VIE"),
SABADO(7,"Sábado","SAB"),
DOMINGO(8,"Domingo","DOM");
private final int numero
private final String nombre
private final String abreviatura
Dias(int numero,String nombre,String abreviatura){
this.numero = numero
this.nombre = nombre
this.abreviatura = abreviatura
}
// Metodos Getters para acceder a las propiedades del enum
private int numero() { return numero }
private String nombre() { return nombre }
private String abreviatura() { return abreviatura }
}
Paso 2 : Importar enum
Al inicio de nuestra página .gsp agregamos el tag necesario para importar nuestro enum
<%! import org.blog.ejemplos.Dias %>
<html>
<head> … </head>
<body> … </body>
</html>
Paso 3 : Obtener datos del enum
Creamos el g:select, en la propiedad optionKey escribrimos el valor que deseamos recuperar y en optionValue lo que queremos mostrar.
<div class="dialog">
<h2>Escoge tu día favorito:</h2>
<g:select id="dias" name="dias"
noSelection="['': '']"
from="${Dias.values()}"
optionKey="abreviatura"
optionValue="nombre"
onchange="escribirDia(this)"/>
</div>
Adicionalmente y según sea nuestra necesidad, podemos definir una función javascript para recuperar el valor seleccionado.
<script type="text/javascript">
function escribirDia(itemSeleccionado){
// Devuelve el index de la opcion seleccionada, ej: 0,1,2...
var index = itemSeleccionado.selectedIndex
// Devuelve el valor de la opcion seleccionada
var abreviatura = itemSeleccionado.value
// Devuelve el texto una opcion, segun el index dado
var nombre = itemSeleccionado.options[index].text
document.getElementById("tuDia").innerHTML = abreviatura + " - " + nombre;
}
</script>
Resultado
Tengo mis datos en bases de datos por ejemplo Estado, Municipio y Localidad necesito hacer el combo que cuando seleccionen el estado se cargue municipios con los municipios correspondientes a ese estado al igual cuando seleccionen un municipio se cargue el combo con las localidades de ese municipio estoy utilizando Grails 2.4.4
ResponderEliminarTengo mis datos en bases de datos por ejemplo Estado, Municipio y Localidad necesito hacer el combo que cuando seleccionen el estado se cargue municipios con los municipios correspondientes a ese estado al igual cuando seleccionen un municipio se cargue el combo con las localidades de ese municipio estoy utilizando Grails 2.4.4
ResponderEliminar