È possibile chiamare un metodo che prende parametri da un modello di Freemarker?Come si richiamano i metodi Java su un oggetto da un modello di FreeMarker?
Ho un modello di oggetti che sto cercando di renderizzare con Freemarker in una pagina web. Uno degli oggetti ha un metodo per ottenere un elenco secondario del suo contenuto - prendendo un parametro che viene utilizzato per filtrare l'elenco:
public List getunits(final String type);
So in JSP non è possibile farlo direttamente, ma è possibile scrivi funzioni personalizzate che ti permetteranno di ottenere il risultato desiderato. Come si risolve questo in Freemarker? È lo stesso con la scrittura di funzioni personalizzate? O c'è un modo per chiamare effettivamente questo tipo di funzione?
avuto problemi quando il mio fagiolo stava estendendo un TreeMap. In questo caso non è possibile trovare il metodo. – tbraun
@tbraun: In questo caso è necessario '? Api'. I metodi di 'Map'-s non sono esposti (con' DefaultObjectWrapper' almeno) perché in FTL, a differenza di Java, i metodi non hanno il loro spazio dei nomi. Quindi si mischiano con le chiavi nella mappa, come 'myMap.someKey' e' myMap.get' (restituisce il metodo 'Map.get') restituirebbero entrambi qualcosa, e sarebbero entrambi elencati con' myMap? Keys', ecc. Sarebbe un disastro. Per impostazione predefinita, 'myMap.something' cerca solo la chiave' map' 'Map', non il metodo' something'. Ma puoi lavorare in giro come 'myMap? Api.get (...)'. – ddekany