Умовно відображення компонентів JSF


79

По-перше, я новачок у Java EE, що походить із сильного середовища розробки ASP .NET. Я пройшов мережу, і я міг би пропустити це, але, схоже, не існує простих і простих підручників про те, як я міг підключити резервний клас bean до компонентів JSF.

Хорошим прикладом є такий, на даний момент я намагаюся створити сторінку JSF, де є набір посилань як рядок меню та набір форм. Що я планую зробити, це те, що при натисканні на посилання буде відображено певну форму.

В ASP.NET я міг легко отримати елемент, а потім встановити атрибут для відображення. Мені цікаво, чи є простий спосіб (чорт візьми, навіть будь-який спосіб) зробити це в JSF.

Форми вже є на сторінці, це лише питання встановлення атрибуту "render" на true, коли я натискаю певне посилання.

Відповіді:


158

Так, використовуйте renderedатрибут.

<h:form rendered="#{some boolean condition}">

Зазвичай ви прив’язуєте його до моделі, а не дозволяєте моделі захоплювати компонент і маніпулювати ним.

Напр

<h:form rendered="#{bean.booleanValue}" />
<h:form rendered="#{bean.intValue gt 10}" />
<h:form rendered="#{bean.objectValue eq null}" />
<h:form rendered="#{bean.stringValue ne 'someValue'}" />
<h:form rendered="#{not empty bean.collectionValue}" />
<h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:form rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />

Зверніть увагу на важливість ключових слів на основі операторів EL , таких як gt, ge, leі ltзамість того >, >=, <=і , <як кутові дужки <і >зарезервовані символи в XML. Див. Також відповідні запитання та відповіді: Помилка синтаксичного аналізу XHTML: вміст елементів повинен складатися з чітко сформованих символьних даних або розмітки .

Що стосується конкретного випадку використання, припустимо, що посилання передає такий параметр, як нижче:

<a href="page.xhtml?form=1">link</a>

Потім ви можете показати форму, як показано нижче:

<h:form rendered="#{param.form eq '1'}">

(the #{param}- неявний об'єкт EL, що посилається на Mapпредставлення параметрів запиту)

Дивитися також:


13

На додаток до попереднього допису, який ви можете мати

<h:form rendered="#{!bean.boolvalue}" />
<h:form rendered="#{bean.textvalue == 'value'}" />

Jsf 2.0


1
Таке невелике доповнення не варто окремо відповідати.
Карл Ріхтер,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.