В зависимости от ваших потребностей у вас будет несколько вариантов. Если вы хотите построить структуру документа из объектов, вы можете использовать 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
Эта структура затем может быть преобразована в строку, и все детали форматирования (открывающие / закрывающие теги, включающие атрибуты и т. Д.) Будут обрабатываться для вас. Конструктор элементов Джакарты предоставляет аналогичный API, который также более специфичен для HTML.
В качестве альтернативы, вы можете включить шаблонизатор, который позволит вам писать HTML-файлы с заполнителями для значений переменных и базовой логики. Затем вы должны объединить эти шаблоны с вашими данными для создания окончательного HTML. FreeMarker - очень широко используемый движок, который даст вам большую гибкость, если вы не против потратить немного времени на изучение их языков шаблонов.
Если вы пойдете по этому пути, вы создадите шаблон, подобный следующему:
<html>
<head>
<title>${myTitle}</title>
</head>
<!-- blah -->
</html>