Java HTML Builder(反模板)库?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3583846/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Java HTML Builder (anti-template) library?
提问by Adam Gent
I'm always looking for a modern Java library that makes creating valid (X)HTML snippets easy.
我一直在寻找可以轻松创建有效 (X)HTML 片段的现代 Java 库。
Yes you could use a templating language but there are times when you do not want to do this because Java has some advantages over insert your favorite templating language.
是的,您可以使用模板语言,但有时您不想这样做,因为 Java 比插入您最喜欢的模板语言有一些优势。
I have seen lots of in-house HTML builders in many projects but there is no Commons-HTML Builder that I can find.
我在许多项目中看到过很多内部 HTML 构建器,但我找不到 Commons-HTML Builder。
Does anyone know of one?
有谁知道一个?
It would be ideal if it took advantage of the Java 5/6/7 type system (generics) and support Fluent Style. Or something like fluent style ie JQuery style chaining, or a state machine used in mocking libraries like JMock (pedantically speaking a Monad).
如果它利用 Java 5/6/7 类型系统(泛型)并支持 Fluent Style,那将是理想的。或者像流利的风格,即 JQuery 风格的链接,或者像 JMock 这样的模拟库中使用的状态机(迂腐地说 Monad)。
A rough builder example might be:
一个粗略的构建器示例可能是:
new Html().title("stuff").body().in().div().in().h1("Hello World").hr();
Another example: http://codemonkeyism.com/the-best-markup-builder-i-could-build-in-java/
另一个例子:http: //codemonkeyism.com/the-best-markup-builder-i-could-build-in-java/
I ended up writing my own: Java Anti-template Language (JATL)
我最终编写了自己的:Java 反模板语言 (JATL)
回答by Adam Gent
I ended up writing my own library called Java Anti-template Language (JATL)
我最终编写了自己的名为Java 反模板语言 (JATL) 的库
回答by serg10
Have you tried the Jakarta Element Construction Set (ECS)project?
您是否尝试过Jakarta Element Construction Set (ECS)项目?
It is not really a fluent API - reminds me more of StringBuilder than Mockito... But functionally I think it is what you're after.
它并不是一个真正流畅的 API - 让我想起 StringBuilder 而不是 Mockito ......但从功能上讲,我认为这就是你所追求的。
回答by Sean Patrick Floyd
Your best bet is probably to use an XML library and render the output as HTML.
最好的办法可能是使用 XML 库并将输出呈现为 HTML。
I.E. Dom4Jdefines a HtmlWriterclass for HTML-specific XML output.
IE Dom4J为特定于 HTML 的 XML 输出定义了一个HtmlWriter类。
But you'd still have to create your own api on top of it to actually create the document.
但是您仍然需要在它之上创建自己的 api 才能实际创建文档。

