2011-04-13 103 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

相关问题