2009-07-09 80 views
1

這涉及到這樣一個問題:將jsp文件轉換爲Django模板?

how-can-i-port-a-legacy-java-j2ee-website-to-a-modern-scripting-language

但較窄的焦點。

由於各種原因,我們基本上重寫了遺留Java應用程序,但試圖保持用戶界面幾乎相同。

在其中一個答案,有人說:

選擇代表頁面和返工他們到相應的模板。你可能會使用一些遺留的JSP頁面。但是,不要浪費太多時間。使用HTML創建Django模板。

的事情是,應用具有大約15個不同的「頭版」,其中的每一個主要是由〜100 jsp文件適當混合&匹配子集。我相信在jsp文件中分割內容可能是我想用於Django模板的分區;因此我寧願將它們轉換爲模板,而不是從HTML開始,然後重新進行確定正確分區的工作。

所以,我真的希望有一個合理的方式來做這種轉換。

我是一個Django新手&從未使用javascript工作(壽在我的球隊其他人有),所以任何幫助,將不勝感激:如果你能推薦一個自動化或半自動化的工具,還是建議一個基本的方法,提示&技巧,建議,恐怖故事..

在此先感謝!

響應維奈的答案編輯:

我認爲這是相當香草jsp中,有沒有涉及第三方庫。 有腳本,但它們被很好地分隔到自己的文件中。

在這一點上,我想我們想要一些快速的東西,我們可以改進 以後再做最佳實踐。

關於EXTENDS和INCLUDE,這讓我覺得我們應該仔細考慮我們的頭版的設計,至少;但 可以採取最小努力的方式來轉換這些小片段中的一些。

+0

哎唷,什麼任務! – AlbertoPL 2009-07-09 05:28:09

+0

是啊,這聽起來不愉快。 – seth 2009-07-09 19:54:35

回答

0

你可能會隱藏起來 - 它肯定會取決於細節,您使用第三方庫和自定義JSP標記。你只是想在Django中以最少的工作來實現它,還是想讓完成的網站反映出Django的最佳實踐?例如,在Django中,通常使用extends功能設計模板 - 儘管Django的標籤類似於<jsp:include/>,但看起來更經常的是extends,而include的頻率要低得多。在JSP世界中,extends功能不是vanilla JSP的一部分,並且使用第三方庫實現。 SiteMesh或Tiles。

如果我面臨的任務是「快速找到可行的東西!「,我的第一個方法是處理一個Python腳本,它解析所有的JSP文件(使用基於正則表達式的相當簡單的解析器),並拋出相應的Django模板文件,並標記出難題。不會很漂亮,它不會做得很好,但它會是系統的,你會得到一個需要手工完成的事情的清單(例如需要實現的模板標籤)。這種方法的增加值與JSP代碼是多麼整齊和系統的多少成正比,不管你是否使用scriptlets,等等。