На работе мы обсуждаем обновление нашего слоя представления для нашего веб-приложения. В настоящее время мы работаем со старой и «модифицированной» версией FreeMarker Classic, с которой трудно работать. Один из наших разработчиков предложил использовать архитектуру стиля пользовательского интерфейса компонентов, аналогичную средам в стиле рабочего стола.
По сути, это будет означать, что вы будете создавать пользовательские компоненты HTML как классы Java, которые контроллер будет отображать в представлении документа. Это полностью исключило бы необходимость записи HTML в слой представления. Компоненты сгенерируют слой представления для вас.
Например, следующий визуализированный HTML:
<h1>I am a title</h1>
<p>I am a paragraph.</p>
Будет сгенерировано что-то вроде:
String titleString = "I am a title";
html.elements.Heading heading = new html.elements.Heading(Heading.H1, titleString);
String paraString = "I am a paragraph.";
html.elements.Paragraph paragraph = new html.elements.Paragraph(paraString);
PrintWriter somePrintWriter = new PrintWriter();
Document document = new Document();
document.addElement(heading);
document.addElement(paragraph);
document.compose(somePrintWriter);
Приведенный выше код является просто примером, не критикуйте имена или стиль, я просто написал его для быстрой демонстрации того, что мы, возможно, пытаемся достичь. Я пытаюсь определить, было ли это сделано ранее в Java, и если да, есть ли ссылки, на которые можно указать. Я исследовал это столько, сколько смог, но не нашел никаких реализаций, которые полностью удаляют слой шаблона (например, JSP или JSF).
Спасибо!