2011-04-14 71 views
2

我正在一個POC上工作,我需要創建一個等效於JSP的freemarker ftl。目的是找出創建jsp等效的ftl文件是多麼容易。我在jsp文件中遇到了一些scriptlet,不確定我應該採用哪種方法在ftl的代碼中編寫相同的代碼。我應該創建支持scriptlet代碼的標籤嗎?但是這對於爲每個scriptlet編寫標籤都太昂貴了(可能我在這裏完全是錯誤的)。我被困在這裏。你能告訴我在sriptlet中編寫相同代碼的最佳方法嗎?如何:freemarker中的jsp scriptlet等效代碼

謝謝,Hanumant。

+0

freemaker的全部目的是防止你的代碼與你的html混合,即它試圖幫助你停止在你的html中放置「scriptlets」。 – Jacob 2011-09-19 07:05:42

回答

6

FreeMarker和JSP之間的主要區別之一就是FreeMarker不支持模板中任意Java代碼片段。就涉及的問題分離而言,這是一件非常好的事情。

如果您絕對需要將JSP scriptlet轉換爲FreeMarker模板,則應首先檢查scriptlet實際執行的操作。其中一些可能被其等價的宏取代;例如:

<% if (x < 3) { %> 

可以很容易地替換爲:

<#if (x < 3)> 

你的想法。

剩餘的scriptlet可以被自定義的FreeMarker宏替代,但是您應該問自己這個問題:我在模板中沒有做太多事情嗎?

至於編寫一個可能包含Java代碼的通用宏,這將非常困難,因爲儘管JSP在運行時實際編譯到Servlet中,但FreeMarker模板處理不涉及任何Java編譯。這又是一件好事。