2015-03-18 15 views
5

Ho difficoltà a trovare esempi su come implementare i partial utilizzando l'implementazione java Spullara Moustache. La loro pagina github non sembra avere esempi parziali semplici.spullara mustache java partial

In DefaultMustacheFactory vedo i metodi per compilePartial e resolvePartialPath, ma non sono sicuro di doverli sovrascrivere o cosa.

Attualmente ho questo, e funziona benissimo senza partial. TemplateContent contiene il template HTML grezzo che include la sintassi dei baffi.

public Mustache compileMustacheTemplate(String templateCode, String templateContent){ 
     return new DefaultMustacheFactory().compile(new StringReader(templateContent),templateCode); 
    } 

piuttosto semplice. Ma cosa succede se il contenuto del template aveva {{> partialName}} al suo interno? Penso di aver bisogno di specificare in qualche modo anche il contenuto del modello.

Devo estendere DefaultMustacheFactory o eventualmente un'altra classe per specificare il nome del mio parziale e il contenuto per esso?

Credo che mi manchi solo qualcosa.

Grazie, Matt

risposta

2

Si supponga di avere i file di template memorizzati in una cartella 'src/main/risorse/org/esempio/web /'. Supponiamo che tu abbia un file "page.html" di template che fa riferimento a due altri file template 'header.html' e 'footer.html'. Così il vostro file di modello "page.html" dovrebbe essere così:

{{> src/main/resources/org/example/web/header.html}} 

... some content ... 

{{> src/main/resources/org/example/web/footer.html}} 
+1

Questa è stata la strategia che ho finito per andare con. Prima che il mio template html e partial fossero archiviati in un database, ma non riusciva a trovare un modo per caricare il contenuto parziale che era stato memorizzato in una stringa java dopo averlo estratto dal DB. Grazie per la risposta! –

+0

Il contenuto "parziale" memorizzato in una stringa java non è più una variabile parziale, ma una semplice variabile che deve essere impostata nella matrice di ambiti o mappe o qualsiasi altra cosa si usi. – aliopi