使用Java构建HTML文件的最佳方法是什么?

时间:2011-04-13 01:24:26

标签: java html data-structures

我正在用Java生成HTML格式的日志。是否有最适合存储HTML的数据结构?

这对我来说似乎不太干净:

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

当我需要在标记中使用属性并且必须转义该属性周围的引号时,这会变得特别难看。

创建一个我可以通过Java读取的HTML模板的数据文件会不会更好?

1 个答案:

答案 0 :(得分:6)

根据您的具体需求,您可以选择多种方式。如果你想用对象构建一个文档结构,你可以使用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

然后可以将此结构转换为字符串,并且将为您处理所有格式详细信息(打开/关闭标记,封闭属性等)。 Jakarta的Element Construction Set提供了一个类似于API的API。

或者,您可以包含一个模板引擎,该引擎允许您使用包含变量值和基本逻辑的占位符来编写HTML文件。然后,您将这些模板与数据组合以生成最终的HTML。 FreeMarker是一个非常广泛使用的引擎,如果你不介意花一点时间学习他们的模板语言,它会给你很大的灵活性。

如果你走这条路线,你会创建一个如下模板:

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