2010-06-07 82 views
24

我正在尋找像Django模板或Twig(PHP)中的語法的Java模板引擎。它存在嗎?用於Java的類似Django的模板系統?

更新: 目標是爲不同的語言使用相同的模板文件。

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

可以使用Twig從python(Django)代碼以及PHP中呈現。我正在尋找Java解決方案。

適用於Java,PHP和Python的任何其他模板系統。

+0

我認爲這是一個非常有趣的問題!所以基本上,您正在尋找跨語言/框架的模板引擎,您可以使用相同的模板,同時交換整個技術堆棧的其餘部分。 – Davy8 2010-12-10 14:37:11

+0

我會LOOOVE類似Django的模板引擎。 – drozzy 2011-04-15 14:34:39

回答

10
+0

Sarvash,你對這些建議有沒有運氣? – bchang 2011-01-25 20:19:50

+0

維基百科上有一些[網頁模板引擎](http://en.wikipedia.org/wiki/Template_engine_%28web%29)的比較。 – 2011-04-04 10:36:22

+8

檢查出jandgod項目後 - 我真的很害怕使用它。代碼是可怕的(各種神奇的數字,註釋部分),並且自2010年5月以來一直沒有更新。這是個好主意,不幸很糟糕的實施... – drozzy 2011-04-15 14:39:31

0

當然,Java有各種各樣的模板引擎。我用過FreeMarker,Velocity和StringTemplate。我不確定Django類語法是什麼意思;每個引擎在模板化方法上都有自己的變體。

對於一些不同的引擎檢查出here

+4

我很確定「類似Django的語法」意味着語法與django類似:http://docs.djangoproject.com/en/dev/topics/templates/ – drozzy 2011-04-15 14:46:02

+0

爲什麼要回答如果你甚至不知道什麼問題被問到... – 2013-11-19 11:25:28

+1

因爲當我3年前回答這個問題時,它沒有更新後的所有細節:目標是有相同的... 只看第一行這個問題並向我解釋如何推銷更多信息是不適當的? – Jeff 2013-11-19 16:16:33

1

如果你想爲不同的語言相同的模板,你可以看看Clearsilver。

Clearsilver是一種語言無關的模板引擎,它通過在代碼和模板之間插入語言無關的層次數據格式(HDF),幫助將代碼呈現與代碼分開。想象HDF就像XML一樣,但要簡單得多。

它被用於許多高流量的網站,包括雅虎!組,Gmail靜態HTML,orkut.com,wunderground.com等。與它一起使用的實現語言包括C/C++,Python,Java,Ruby,PHP,C#和其他。 Python框架還包含一個Page-Class調度程序和簡單的ORM,它有點像Ruby-On-Rails,因爲它使數據庫表,HDF和模板之間的映射只需很少的代碼。

Clearsilver的主要實現是C語言特定的包裝。還有一個由Google和開源的JSilver完成的100%Java實現。

http://www.clearsilver.net/

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

21

我已經開發Jtwig。你可以試試看。它在一些成功的項目中被使用。使用Spring webmvc進行很好的集成很容易。

只需使用maven或類似系統包含依賴關係。

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

並配置視圖解析器bean以返回Jtwig之一。

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

或者,如果您使用XML基本配置:

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

您可以使用Mustache.javaHandlebars.java。小鬍子很簡約。把手與小鬍子類似且兼容,但您可以很容易地編寫您自己的擴展。