texto poi formato desde dar celdas ajustar java velocity

java - poi - ¿Accediendo a valores constantes de una plantilla de velocidad de Apache?



ajustar texto poi java (2)

¿Es posible acceder a un valor constante (es decir, una variable final estática pública definida en una clase Java) desde una plantilla de Velocity?

Me gustaría poder escribir algo como esto:

#if ($a lt Long.MAX_VALUE)

pero aparentemente esta no es la sintaxis correcta.


Velocity solo puede usar cualquier cosa que encuentre en su contexto, después, por ejemplo,

context.put("MaxLong", Long.MAX_VALUE);

No se puede usar estática ni acceder a elementos estáticos de las cosas en el contexto de Velocity debido a la forma en que funciona su búsqueda (consulte las reglas de búsqueda de propiedades de Velocity). Lo mejor que puede hacer es agregar el valor que desea verificar de forma explícita en su contexto.

Edite el 6 de octubre como segunda vista, parece que es posible acceder a miembros estáticos. Consulte la guía del desarrollador de velocidad : soporte para "Clases estáticas" para obtener más información. Aunque no probé esto.


Hay diferentes maneras.

1) Puede poner los valores directamente en el contexto.

2) Puede usar FieldMethodizer para hacer que todos los campos estáticos públicos en una clase estén disponibles.

3) Puede utilizar una implementación personalizada de Uberspect que incluya campos públicos estáticos en el orden de búsqueda.

4) Puede usar FieldTool de VelocityTools.

Recomiendo 1 para algunos valores, 2 para algunas clases, 3 para muchas clases y valores, y 4 si ya está usando VelocityTools y de lo contrario usaría 1 o 2.