html
html отображает собственный HTML-код, представленный в виде строки, раздела CDATA или файла.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
Этот элемент предназначен для встраивания HTML в структуру XML. Он позволяет встраивать отдельные HTML-элементы или блоки HTML-кода. Блок должен состоять из одного корневого элемента, такого как <header>, <footer>, <main> или <div>. Внутри этого корневого элемента может быть любое количество вложенных элементов <div> для эффективной структуризации содержимого.
| Обратите внимание, что разработчик несёт ответственность за очистку и удаление любых опасных частей HTML перед отправкой его пользователю через этот компонент. Передача необработанных входных данных пользователю может привести к межсайтовым скриптовым атакам (XSS). |
Пакет сообщений
Этот пример демонстрирует, как добавить HTML-контент через строку в пакете сообщений:
<html content="msg://html.content"/>
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>
Статический ресурс
Файл может обслуживаться приложением статически. Если ваш файл находится по адресу /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 имеет следующие уникальные атрибуты:
| Имя | Описание | По умолчанию |
|---|---|---|
Указывает содержимое HTML, которое будет отображаться компонентом, либо в виде строки в пакете сообщений, либо в разделе CDATA. |
— |
|
Указывает путь к файлу, из которого нужно получить HTML-код. |
— |
html имеет следующие общие атрибуты: