2010-11-09 29 views
17

Puoi consigliare un motore di template per GAE? Mi piace Wicket, ma ha un sacco di stato lato server, che è qualcosa che non è molto compatibile con l'approccio GAE.Motore di modelli per Google App Engine

È FreeMarker supportato su GAE?

EDIT

mie esigenze principali per il motore di template sono:

  • facilità di sviluppo (separazione della logica e del design)
  • sintassi intuitiva, dal momento che gli utenti possono personalizzare alcuni modelli
  • Veloce, leggero
+1

AppEngine/Java in particolare? –

+1

http://freemarker.blogspot.com/2010/02/freemarker-on-google-app-engine.html sembra indicare che FreeMarker non è (attualmente) supportato in Java App Engine –

+2

Vedere http://code.google .com/p/googleappengine/wiki/WillItPlayInJava per un elenco di framework che verranno eseguiti in Java App Engine. –

risposta

2

Sto utilizzando FreeMarker su GAE con successo. Ce l'ho gestendo tutti i file html con la gestione della directory di file di benvenuto funzionante. Per ulteriori informazioni, vedere this other stackoverflow question. Ho il mio file web.xml e altri dettagli lì.

+0

Continuo ad avere un problema con il mio freemarker ed eclissi, non sembra distribuire il file .ftl in gae quando eseguo mvn appengine: deploy, per favore come è stato superato questo? –

+0

Mi dispiace per non aver usato GAE per un po '. Penso di aver fatto il gestore freemarker a rendere tutti i file HTML di default @ I.Tyger. – Gray

1

Rythm è un motore di template Java fortemente digitato che utilizza la sintassi Razor come ad alte prestazioni (da 2 a 3 volte più veloce di Velocity e FM). Esso fornisce un modo molto leggero per fare String interpolazione:

String result = Rythm.render("hello @who!", "world"); 

Questa semplicità rende Rythm un buon sostituto per String.format() in molti casi. Si prega di notare che è Rythm.render 2x più veloce di String.format

Per modello completo è possibile utilizzare la stessa interfaccia di passare nel nome del file:

Map<String, Object> args = new HashMap<String, Object>(); 
args.put("who", "world"); 
... 
String result = Rythm.render("myTemplate.html", args); 

Rythm ha molto ricco set di funzionalità tra cui il controllo del flusso java (se- else, for loop, collection iteration), ereditarietà dei template, creazione e invocazione di tag interni ed esterni, caching, estensione del metodo Java, spazio compatto, escape html ecc. La maggior parte delle funzionalità è dimostrata allo http://play-rythm-demo.appspot.com/. (E sì, la demo è scritta con il motore di template Play! Framework plus Rythm ed è in esecuzione su GAE!)

C'è il plugin Play! Framework creato sul motore Rythm, puoi trovare la documentazione su come usare Rythm da lì : http://www.playframework.org/modules/rythm

È possibile scaricare Rythm da https://github.com/greenlaw110/rythm/downloads