Что является динамичным в Dynaform Primefaces Extension
Кто-нибудь знает, что такое Dynamic в Dynaform от Primefaces Extension. Кажется, в примере с динамической формой нет ничего динамичного. Насколько я могу судить, это просто форма с фиксированным макетом и фиксированными компонентами ввода. Не то, что я ожидал, учитывая заявление на первой странице:
Обычно мы можем построить форму довольно просто с помощью h: panelGrid или p: panelGrid, если известно количество строк / столбцов, позиции элементов и т. Д. Это верно для статических форм. Но невозможно использовать h: panelGrid или p: panelGrid, если форма описывается динамически во время выполнения. Например, если определение всей формы помещено в базу данных или файл XML.
DynaForm позволяет создавать динамические формы с метками, входами, выборками и другими элементами по модели. Другие улучшения: расширяемая расширенная область просмотра (сетка), функция автоматической отправки, клиентский API виджета, различные аспекты. Поддерживаемые аспекты
2 ответа
Один из авторов Расширения Primefaces объясняет это чуть более подробно в своем блоге: http://ovaraksin.blogspot.hu/2012/06/dynamic-forms-jsf-world-was-long.html.
Важной частью является:
Дочерний тег pe:dynaFormControl соответствует созданному в элементах управления Java атрибуту "type". Обычно это отношение "один ко многим".
Вы не определяете макет на странице xhtml, вы просто создаете некоторые пользовательские компоненты, на которые ссылаетесь в своем Java-коде.
В примере basicUsage вы можете увидеть это:
<pe:dynaFormControl type="calendar" for="cal">
<p:calendar id="cal" value="#{data.value}" />
</pe:dynaFormControl>
Это создает тип элемента управления календаря, который реализуется с помощью p:calendar
, Вы можете сослаться на это в своем бэке поддержки:
DynaFormControl control = row.addControl(property, "calendar", 1, 1);
Я создатель этого компонента. Почему вы думаете, что макет исправлен? Это не исправлено, вы определяете макет в Java. Отображение между определенными в элементах управления / метками Java и элементами формы происходит по атрибуту "type". Конечно, все возможные элементы формы должны быть на странице, потому что их проще описать как теги в XHTML, а не создавать в Java. Представьте, что вы создадите SelectOneMenu в Java с SelectItems, Ajax-поведением, Action / ActionListener, множеством других атрибутов... Проще указать отображение 1-N, как в p:treeNode и TreeNode. Здесь то же самое - у вас есть pe:dynaFormControl и DynaFormControl. Изучите все примеры кода, пожалуйста.
Благодарю. Олег.
PS Мой последний пост в блоге об этом компоненте.