¿Es posible llamar a un método que toma parámetros de una plantilla de Freemarker?¿Cómo puedo llamar a los métodos de Java en un objeto desde una plantilla de FreeMarker?
Tengo un modelo de objeto que trato de representar con Freemarker en una página web. Uno de los objetos tiene un método para obtener una lista secundaria de los contenidos de TI - tomar un parámetro que se utiliza para filtrar la lista:
public List getunits(final String type);
Sé que en JSP no se puede hacer esto directamente, pero se puede escriba funciones personalizadas que le permitirán lograr el resultado que desea. ¿Cómo resuelves esto en Freemarker? ¿Es lo mismo con escribir funciones personalizadas? ¿O hay alguna forma de llamar realmente a este tipo de función?
tenido problemas cuando mi frijol estaba extendiendo una TreeMap. No puede encontrar el método en ese caso. – tbraun
@tbraun: Necesitas '? Api' en ese caso. Los métodos de 'Map'-s no están expuestos (con' DefaultObjectWrapper' al menos) porque en FTL, a diferencia de Java, los métodos no tienen su propio espacio de nombres. Entonces se mezclarían con las teclas en el mapa, como 'myMap.someKey' y' myMap.get' (devuelve el método 'Map.get') ambos devolverían algo, y ambos se listarían con' myMap? Keys', etc. Eso sería un desastre. Por lo tanto, de forma predeterminada, 'myMap.something' solo busca la clave' something' 'Map', no el método' something'. Pero puedes trabajar eso como 'myMap? Api.get (...)'. – ddekany