¿Cómo puedo cambiar la forma en que GRAILS GSP fieldValue formatea los enteros?

Tengo un campo en mi objeto de dominio que defino como un entero ...

Integer minPrice

Luego accedo a ella en una página GSP de la siguiente manera:

${fieldValue(bean: myBean, field: 'minPrice')}

y lo que obtengo en mi HTML es ...

100,000

que no es un entero, es una cadena. Peor aún, es una cadena formateada en una configuración regional particular.

Esto es un problema porque tengo un control SELECT en un FORMULARIO HTML que tiene un rango de valores (no ordinarios) para el minPrice que quiero almacenar en mi objeto de dominio como enteros, y no quiero almacenar un índice para alguna matriz de valores que tengo que asignar repetidamente de un lado a otro, quiero el valor en sí.

Mi control de selección se ve así ...

<g:select name="minPrice" 
value="${fieldValue(bean: personInstance, field: 'minPrice')}"  
onchange="setDirty()"
noSelection='${['0':'Select a number...']}'
from="${[
    ['name':'100,000', 'id':100000],
    ['name':'200,000', 'id':200000],
    ['name':'300,000', 'id':300000]
    ]}"
optionKey="id" optionValue="name"
/>

Cuando obtengo el valor del campo SELECCIONAR para volver a publicar en el servidor, tiene correctamente un valor Integer, que persisto. Sin embargo, el viaje de regreso nunca preselecciona la fila derecha en el menú desplegable porque el valor es esta cadena separada por comas.

Esto funciona bien en otras partes de mi código para números pequeños donde el formato de coma no entra en juego, y el viaje de ida y vuelta dentro y fuera de SELECT es exitoso. Pero los valores> 999 no funcionan.

Los docs dicen"Esta etiqueta inspeccionará un bean que ha sido objeto de enlace de datos y obtendrá el valor del campo ya sea del valor enviado originalmente contenido en el objeto de errores del bean que se llena durante el enlace de datos o del valor de la propiedad de un bean. Una vez que el valor Se obtiene será automáticamente codificado en HTML ".

Es ese último bit que quiero evitar, ya que parece formatear enteros. Entonces, ¿qué parte de la magia de Grails / GSP necesito saber para poder hacer que mi Integer se represente como un entero en mi SELECCIONAR y preseleccione la fila correcta?

EDITAR: He intentado algunas cosas más basadas en las respuestas a continuación, con resultados bastante decepcionantes hasta ahora ...

Si pongo el<gformatNumber/> etiqueta en mi<g:select/> Obtengo el código de la página como texto en el navegador.

<g:select name="minPrice" 
value='<g:formatNumber number="${fieldValue(bean: personInstance, field: 'minPrice')}" format="#" />'
onchange="setDirty()"
noSelection='${['0':'Select a number...']}'
from="${[
['name':'100,000', 'id':100000],
['name':'200,000', 'id':200000],
['name':'300,000', 'id':300000],
]}"
optionKey="id" optionValue="name"
/>

Usando la etiqueta de formato de número de GSP en mi valor entero de 100000 como este ...

var x = <g:formatNumber number="${fieldValue(bean: personInstance, field: 'minPrice')}" format="#" />;

da100. Recuerda que elfieldValue devuelve100,000, así que esto no es una sorpresa.

Si uso el jsp taglib de esta manera ...

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
var y = <fmt:formatNumber value="${fieldValue(bean: personInstance, field: 'minPrice')}" pattern=".00"/>;

Recibo un error del compilador de la página.Cannot format given Object as a Number.

Supongo que tengo una preocupación más amplia de la que parece que no puedo obtener un valor Integer como un entero genuino en mi código si es mayor que 999 debido al comportamiento predeterminado (y no configurable) de la directiva fieldValue. Sin embargo, mi problema específico de no poder preseleccionar un valor Integer en un control SELECT no desaparecerá. En este momento estoy un poco perdido.

¿Alguien tiene alguna otra idea?

Respuestas a la pregunta(8)

Su respuesta a la pregunta