2012-07-26 9 views
6

tengo el siguiente cuadro combinado:Griales g: seleccione ninguna selección

<g:select name="ticketType" from="${app.domain.enums.TicketType?.values()}" 
           keys="${app.domain.enums.TicketType.values() }" 
           value="${ticketInstance?.ticketType}" 
           noSelection="${['null': 'Select One...']}" 
        /> 

he configurar la siguiente restricción para BilleteTipo en objeto de comando

ticketType nullable: true, blank:true 

BilleteTipo es una enumeración muy simple:

public enum TicketType { 
     QUESTION, SUPPORT, MAINTENANCE, NEW_FUNCTIONALITY, MALFUNCTION 
} 

Y cada vez que no configuro algún valor para ticketType en mi GSP obtengo el siguiente error:

Failed to convert property value of type 'java.lang.String' to required type 'com.coming.enums.TicketPriority' 

Es como en el caso de no selección g: select establece el valor de "nulo" (cadena).

¿Qué me estoy perdiendo?

+0

Por favor, muestre el código de su 'g: select' ... – aiolos

+0

@aiolos Lo sentimos, hubo un error en el formateo. Edité mi publicación. – drago

Respuesta

14

En lugar de utilizar el 'nulo' literal, ¿ha intentado utilizar una cadena vacía como su atributo noSelección? p.ej. noSelection="${['':'Select One...']}"? Esto puede hacer una conversión adecuada a un verdadero valor nulo durante el enlace de datos.

+0

Así es como normalmente lo hago, pero no funcionó. Entonces jugué con diferentes opciones. Mientras tanto, he cambiado algunos códigos en controladores y servicios, y devuelvo noSelection a noSelection = "$ {['': 'Select One ...']}" y ahora funciona. Gremlins :) – drago

2

Como dice tu error, tienes una cadena en tu noSelection. Esto no se puede convertir a ninguno de sus valores enum.

quitar las comillas de su null y debería funcionar (a mí me funciona con griales 2.0):

<g:select name="ticketType" from="${app.domain.enums.TicketType?.values()}" 
          keys="${app.domain.enums.TicketType.values() }" 
          value="${ticketInstance?.ticketType}" 
          noSelection="${[null: 'Select One...']}"/> 
+0

Lo he intentado todo y aún no funciona. ¿Alguna otra idea? – drago

+0

g: select termina produciendo HTML, por lo que no hace ninguna diferencia las citas en torno a nulo, ya que producirá value = "null" de todos modos ... – Deigote

Cuestiones relacionadas