Tengo una variable de selección múltiple publicando en el controlador. La forma en que funciona la selección múltiple es que se pasa como una sola cadena si solo hubo un valor seleccionado y como una cadena [] si se seleccionó más de un valor. Quiero seguir procesando de forma simple y tratar los valores pasados de la misma manera. Así que la mejor forma posible para arriba es para convertirlo en una lista de este modo:Convertir cadena o cadena [] a la lista con Groovy
def selectedValues = params.selectedValues
List valuelist = new ArrayList()
if(selectedValues instanceof String) {
valuelist.add(selectedValues)
} else {
valuelist = selectedValues as List
}
Funciona, pero tengo curiosidad si hay una manera más groovy para hacer esto, tal vez con un chiste :).
Por supuesto, si lo hago simplemente:
List valuelist = selectedValues as List
No va a trabajar para un solo valor seleccionado, ya que lo convertirá de digamos 24 a [2,4]
¿Alguna idea?
Gracias, me gusta la solución que usa flatten() – Micor
más corta que .findAll {it! = Null} es simplemente '- null', que eliminará todas las entradas nulas de la matriz. – mmigdol
¡Gracias, es una solución muy buena! : D –