Индивидуальный тимьяновый диалект с фрагментами - PullRequest
0 голосов
/ 22 ноября 2018

В моем проекте Spring Boot 2 у меня есть фрагменты Thymeleaf для генерации элементов формы.Например:

<input th:replace="component/admin_form :: text (formElement = ${vm.getElementStatus()}, class='css-class-a'))" />

Приведенный выше код генерирует сложный блок div с меткой, полем ввода и блоком ошибок.

Я хотел бы упростить этот синтаксис.Моя идея состояла в том, чтобы создать собственный диалект с пользовательским тегом и написать это:

<admin-form:text value="${vm.getElementLastName()}" class="css-class-a"/>

Второй текст легче читать, он четко указывает дизайнерам, что это особый элемент.Кроме того, было бы легче изменить темы, так как мне нужно только изменить местоположение конкретного фрагмента в процессоре тегов, а не сотни: заменить значение.

Также важно, чтобы я не хотелпостроить сложную HTML-макет в процессоре тегов просто хотите как-то импортировать фрагмент.Таким образом, дизайнеры могут изменять фрагмент HTML без изменения кода Java.

Мне удалось создать собственный диалект и создать собственный тег, который генерирует блок HTML:

@Override
protected void doProcess(ITemplateContext context, IProcessableElementTag tag, IElementTagStructureHandler structureHandler) {
    final IModelFactory modelFactory = context.getModelFactory();
    final IModel model = modelFactory.createModel();

    model.add(modelFactory.createOpenElementTag("div", "class", "test"));
    model.add(modelFactory.createText("This is my custom element"));
    model.add(modelFactory.createCloseElementTag("div"));

    structureHandler.replaceWith(model, false);
} 

Но я нене знаю, как импортировать фрагмент в мой пользовательский тег.

Возможно ли это как-нибудь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...