Me he estado familiarizando con FreeMarker, un motor de plantillas para Java.Pasando una lista de objetos a Freemarker y luego a Looping
Llegué al punto en el que puedo pasar un objeto al motor de plantillas a través de un Hash Map. Eso funciona bien Pero tan pronto como trato de pasar cualquier tipo de conjunto de objetos múltiples a FreeMarker, me da una freemarker.template.TemplateException y me quejo de que "trabajos esperados de colección o secuencia evaluados en su lugar freemarker.template.SimpleHash".
Por lo que entiendo por leer sobre esto en los diversos recursos, esto es de esperar.
Ahora, he trabajado mucho y he encontrado varias personas que comentan cómo evitar esto. Pero, francamente, (a) para muchos de los ejemplos no estaba claro cómo se aplica exactamente su consejo en mi caso, aunque conozco los principios básicos de Java desde hace bastante tiempo, soy bastante nuevo en algunos aspectos de la arquitectura. perteneciente a las aplicaciones web de Java y (b) estoy confundido en cuanto a cuál de los enfoques fue el mejor enfoque.
Todo lo que quiero hacer, en el nivel más simplificada, es básicamente el siguiente:
que tienen un servlet simple.
Tengo una clase simple (para este ejemplo llamada Factura) con algunos métodos y propiedades.
Quiero tener mi servlet (de alguna manera) presente una lista/matriz/secuencia/hashmap de instancias de estos objetos (o vistas de esos objetos) a través del método de proceso de FreeMarker.
Quiero tener mi plantilla .ftl hacer un bucle por la lista/conjunto/secuencia/HashMap y método de visualización resultados, algo como esto:
< # list invoices as invoice>
Invoice note: ${invoice.getNote()}, Invoice Amount:${invoice.getAmount()}
</# list>
Ahora, no estoy necesariamente buscando la solución rápida & sucio a esto. Soy nuevo en FreeMarker, pero quiero hacer esto de la forma correcta, elegante y con buen diseño. Entonces estoy abierto a repensar por completo este enfoque. ¿Alguien puede ayudarme a ver qué debo hacer para que funcione algo como esto?
por cierto: la etiqueta "freetype "se refiere a un motor de representación de fuentes. En su lugar, debe etiquetar esta pregunta como "freemarker". –