2011-04-13 102 views
1

我正在用Java生成HTML格式的日誌。有沒有最適合存儲HTML的數據結構?使用Java構建HTML文件的最佳方式是什麼?

這似乎不是很乾淨的對我說:

String html_header = "<!DOCTYPE html>\n<html><head><title>blah</title>...</html>"; 

當我需要在標籤中使用屬性和必須逃脫圍繞該屬性的報價這可以變得特別難看。

創建一個可以通過Java讀取的HTML模板的數據文件會更好嗎?

+2

看起來像從http://stackoverflow.com/questions/3583846/java-html-builder-anti-愚弄的人模板庫 – CarlosZ 2011-04-13 01:26:33

+0

感謝您的鏈接 – Nathan 2011-04-13 22:03:31

回答

5

根據您的確切需求,您可能有多種選擇。如果你想建立一個文檔結構出來的對象,你可以使用dom4j的,這樣可以讓你寫這樣的代碼:

Document document = DocumentHelper.createDocument(); 
Element html = document.addElement("html"); 
Element head = html.addElement("head"); 
head.addElement("title").addText("blah"); 

Element body = html.addElement("body") 
// etc 

然後可將這種結構轉換爲字符串,所有的格式細節(打開/關閉標籤,封閉屬性等)將爲您處理。雅加達的元素構造集提供了一個類似於特定HTML的API。

或者,您可以包含一個模板引擎,它允許您使用變量值和基本邏輯的佔位符編寫HTML文件。然後,您將這些模板與您的數據結合起來以生成最終的HTML。 FreeMarker是一個非常廣泛使用的引擎,如果你不介意花費一點時間學習模板語言,它會給你很大的靈活性。

如果你走這條路,你會創建一個類似下面的模板:

<html> 
    <head> 
    <title>${myTitle}</title> 
    </head> 
    <!-- blah --> 
</html> 
+0

+1爲dom4j和模板引擎。 – maerics 2011-04-13 04:51:27

+0

非常豐富,謝謝。我想我會去與DOM4j。 – Nathan 2011-04-13 22:04:41

相關問題