html

html отображает собственный HTML-код, представленный в виде строки, раздела CDATA или файла.

XML-элемент

html

Java-класс

Html

Основы

Этот элемент предназначен для встраивания HTML в структуру XML. Он позволяет встраивать отдельные HTML-элементы или блоки HTML-кода. Блок должен состоять из одного корневого элемента, такого как <header>, <footer>, <main> или <div>. Внутри этого корневого элемента может быть любое количество вложенных элементов <div> для эффективной структуризации содержимого.

Обратите внимание, что разработчик несёт ответственность за очистку и удаление любых опасных частей HTML перед отправкой его пользователю через этот компонент. Передача необработанных входных данных пользователю может привести к межсайтовым скриптовым атакам (XSS).

Пакет сообщений

Этот пример демонстрирует, как добавить HTML-контент через строку в пакете сообщений:

<html content="msg://html.content"/>
messages.properties
com.company.onboarding.view.component.html/html.content=\
<main>\
  <h1>Main Content</h1>\
  <p>This is the main content area.</p>\
    <div>\
      <h2>Section 1</h2>\
      <p>This is the first section of the main content.</p> \
    </div>\
    <div>\
      <h2>Section 2</h2>\
      <p>This is the second section of the main content.</p>\
    </div>\
</main>

Символьные данные

Тот же HTML-блок можно добавить в секцию символьных данных CDATA:

<html id="html">
    <content>
        <![CDATA[
        <main>
            <h1>Main Content</h1>
            <p>This is the main content area.</p>
            <div>
                <h2>Section 1</h2>
                <p>This is the first section of the main content.</p>
            </div>
            <div>
                <h2>Section 2</h2>
            <p>This is the second section of the main content.</p>
            </div>
        </main>
    ]]>
    </content>
</html>

Содержимое файла

Код HTML-блока также можно получить из файла одним из следующих способов.

Статический ресурс

Файл может обслуживаться приложением статически. Если ваш файл находится по адресу /src/main/resources/META-INF/resources/html/html-file.html, укажите его следующим образом:

<layout classNames="html-component">
    <tabSheet id="tabSheet" width="100%">
        <tab id="declarativeTab" label="Declaratively added component">
            <html file="META-INF/resources/html/html-component.html"/>
        </tab>
    </tabSheet>
</layout>
По умолчанию статическое содержимое обслуживается из каталогов /static, /public, /resources или /META-INF/resources в classpath. Подробности смотрите в документации Spring Boot.

Потоковый ресурс

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

Компонент нельзя создать с помощью бина UiComponents, так как он не предоставляет конструктор без аргументов.
protected static final String SRC_PATH = "META-INF/resources/html/html-component.html";

@ViewComponent
protected JmixTabSheet tabSheet;

@Autowired
protected Resources resources;

@Subscribe
protected void onInit(InitEvent event) {
    InputStream resourceAsStream = resources.getResourceAsStream(SRC_PATH);

    Html html = new Html(resourceAsStream);
    tabSheet.add("Programmatically added component", html);
}

Атрибуты

html имеет следующие уникальные атрибуты:

Имя Описание По умолчанию

content

Указывает содержимое HTML, которое будет отображаться компонентом, либо в виде строки в пакете сообщений, либо в разделе CDATA.

file

Указывает путь к файлу, из которого нужно получить HTML-код.

html имеет следующие общие атрибуты:

Обработчики

html имеет следующие общие обработчики: