2010-08-27 14 views
31

Siempre estoy buscando una biblioteca Java moderna que facilite la creación de fragmentos HTML válidos (X).biblioteca Java HTML Builder (anti-template)?

Sí, podría utilizar un lenguaje de plantillas, pero hay veces en las que no desea hacerlo porque Java tiene algunas ventajas sobre la inserción de su lenguaje de plantillas favorito.

He visto muchos creadores de HTML en muchos proyectos, pero no hay un generador de HTML común que pueda encontrar.

¿Alguien sabe de uno?

Sería ideal si aprovechaba el sistema de tipo Java 5/6/7 (genéricos) y admite Fluent Style. O algo así como estilo fluido, es decir, encadenamiento de estilo JQuery, o una máquina de estados utilizada en burlas de bibliotecas como JMock (hablando pedantemente de una Mónada).

Un ejemplo constructor áspera podría ser:

new Html().title("stuff").body().in().div().in().h1("Hello World").hr(); 

Otro ejemplo: http://codemonkeyism.com/the-best-markup-builder-i-could-build-in-java/

terminé de escribir mi propia: Java Anti-template Language (JATL)

+0

Otra opción es utilizar de JAXB Fluido Plugin –

Respuesta

33

terminé de escribir mi propia biblioteca llama Java Anti-template Language (JATL)

+0

Se ve bien, ¿todavía lo estás actualizando? –

+0

Sí. Necesito agregar HTML 5 pronto. Probablemente agregarlo en un par de semanas. También está ahora en el repositorio público maven. –

+2

¡Buen trabajo! Sería mucho mejor si los elementos internos pudieran entrar en los constructores como: 'body (h1(), div (table (...)))' –

3

¿Ha probado el proyecto Jakarta Element Construction Set (ECS)?

No es realmente una API fluida, me recuerda más a StringBuilder que a Mockito ... Pero funcionalmente creo que es lo que buscas.

+0

Este es definitivamente un paso en la dirección correcta (1) –

+1

Creo que tenemos un ganador. Qué horrible nombre de proyecto de SEO no amistoso :) Su derecho es probablemente no muy fluido, ya que implicaría una máquina de estado. Si algo es más como una Mónada. Piensa en JQuery. –

+0

Todavía me parece torpe y no es compatible con XHTML. –

3

Probablemente su mejor opción sea utilizar una biblioteca XML y presentar el resultado como HTML.

I.E. Dom4J define una clase HtmlWriter para salida XML específica de HTML.

Pero igual tendría que crear su propia API para crear el documento.

+0

Probam molesto con Dom4J su falta de apoyo de genéricos. ie node.elements() devuelve una lista no list Pero es mi biblioteca XML favorita para Java –

+0

Preferiría imprimir HTML directamente y escapar de todas las variables a mano, en lugar de cualquier biblioteca XML. Para hacer con HTML, la biblioteca XML puede hacer que el código sea feo y extremadamente largo. –