2010-06-07 12 views
24

Sto cercando il motore di template per Java con sintassi come nei template di Django o Twig (PHP). Esiste?Sistema di template di tipo Django per Java?

Aggiornamento: L'obiettivo è di avere gli stessi file di modelli per lingue diverse.

<html> 
{{head}} 
{{ var|escape }} 
{{body}} 
</html> 

può essere reso dal codice Python (Django) e da PHP, utilizzando Twig. Sto cercando una soluzione Java.

È adatto qualsiasi altro sistema di template disponibile in Java, PHP e python.

+0

Penso che questa sia una domanda molto interessante! Quindi, in sostanza, sei alla ricerca di motori di template che siano di tipo cross-language/framework in cui puoi utilizzare lo stesso modello mentre cambi tutto il resto dello stack tecnologico. – Davy8

+0

Vorrei LOOOVE il motore di template di tipo Django. – drozzy

risposta

10
+0

Sarvash, hai avuto fortuna con uno di questi suggerimenti? – bchang

+0

C'è un confronto tra alcuni [motori di template web] (http://en.wikipedia.org/wiki/Template_engine_%28web%29) su wikipedia. –

+8

Dopo aver verificato il progetto jandgod, ho davvero paura di usarlo. Il codice è orribile (tutti i tipi di numeri magici, sezioni commentate), e non è stato aggiornato dal maggio 2010. È una grande idea, purtroppo mal implementata ... – drozzy

0

Certo, ci sono tutti i tipi di motori di template per Java. Ho usato FreeMarker, Velocity e StringTemplate. Non sono sicuro di cosa intendi per sintassi simile a Django; ogni motore ha le sue variazioni su un approccio di template.

Per un confronto di alcuni motori diversi, consultare here.

+4

Sono abbastanza sicuro che "Sintassi simile a Django" significa che la sintassi è simile a quella di django: http://docs.djangoproject.com/en/dev/topics/templates/ – drozzy

+0

Perché rispondere se non lo sai nemmeno a cosa è stata posta la domanda su ... –

+1

Perché quando ho risposto alla domanda 3 anni fa, non aveva tutti i dettagli dopo l'aggiornamento: l'obiettivo è quello di avere lo stesso ... Guarda solo la prima riga di la domanda e mi spieghi come è inappropriato produrre più informazioni? – Jeff

1

Se si desidera che gli stessi modelli per le diverse lingue, si potrebbe dare un'occhiata a Clearsilver.

Clearsilver è un motore di template indipendente dalla lingua che consente di separare la presentazione dal codice inserendo un formato di dati gerarchici (HDF) neutro rispetto alla lingua tra codice e modelli. Pensa all'HDF come XML, ma molto più semplice.

È utilizzato per molti siti Web ad alto traffico, tra cui Yahoo! Gruppi, Gmail HTML statico, orkut.com, wunderground.com e altri. I linguaggi di implementazione utilizzati includono C/C++, Python, Java, Ruby, PHP, C# e altri. Il framework Python include anche un dispatcher di classe Page e un semplice ORM che è un po 'di Ruby-On-Rails come nel fatto che rende la mappatura tra tabelle di database, HDF e modelli richiede pochissimo codice.

L'implementazione principale di Clearsilver è in C con wrapper specifici della lingua. C'è anche un'implementazione java al 100% fatta da Google e open source chiamata JSilver.

http://www.clearsilver.net/

http://code.google.com/p/jsilver/

21

ho sviluppato Jtwig. Potresti provare. Viene utilizzato in alcuni progetti con successo. È facile da configurare con una bella integrazione con il webmvc di primavera.

Basta includere la dipendenza utilizzando Maven o un sistema simile.

<dependency> 
    <groupId>com.lyncode</groupId> 
    <artifactId>jtwig-spring</artifactId> 
    <version>2.0.3</version> 
</dependency> 

E configurare il bean resolver di visualizzazione per restituire Jtwig.

@Bean 
public ViewResolver viewResolver() { 
    JtwigViewResolver viewResolver = new JtwigViewResolver(); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    viewResolver.setSuffix(".twig"); 
    return viewResolver; 
} 

Oppure, se si utilizzano configurazioni di base xml:

<bean id="viewResolver" class="com.lyncode.jtwig.mvc.JtwigViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".twig"/> 
</bean> 
0

È possibile utilizzare Mustache.java e Handlebars.java. I baffi sono molto minimalisti. Handlebars è simile e compatibile con Moustache, ma è possibile molto facilmente scrivere le proprie estensioni.

Problemi correlati