Warunkowe wyświetlanie komponentów JSF

Po pierwsze, jestem nowy w Java EE, pochodzę z silnego środowiska programistycznego ASP. net. Przeszedłem przez Sieć i może mi tego zabraknąć, ale wydaje się, że nie ma prostych i prostych samouczków na temat tego, jak Mogę podłączyć klasę backing bean do komponentów JSF.

Dobry przykład jest taki, obecnie staram się stworzyć stronę JSF, gdzie znajduje się zestaw linków jako pasek menu i zestaw formularzy. Planuję, że po kliknięciu w link, konkretny formularz będzie renderowane.

In ASP.NET, mogę łatwo pobrać element, a następnie ustawić atrybut do wyświetlania. Zastanawiam się, czy jest łatwy sposób (heck, nawet w jakikolwiek sposób), aby to zrobić w JSF.

Formularze są już na stronie, to tylko kwestia ustawienia atrybutu" render " na true po kliknięciu w dany link.

Author: BalusC, 2011-02-02

2 answers

Tak, użyj atrybutu rendered.

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

Zazwyczaj przywiązuje się go do modelu, zamiast pozwolić modelowi chwycić komponent i nim manipulować.

Np.

<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'}" />

Zwróć uwagę na znaczenie operatorów el opartych na słowach kluczowych , takich jak gt, ge, le i lt zamiast >, >=, <= oraz < jako nawiasy kątowe < i > są zastrzeżonymi znakami w XML. Zobacz także podobne pytania i odpowiedzi: błąd podczas parsowania XHTML: zawartość elementów musi składać się dobrze uformowanych danych znakowych lub znaczników .

Jeśli chodzi o konkretny przypadek użycia, Załóżmy, że link przekazuje parametr jak poniżej:

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

Możesz następnie pokazać formularz jak poniżej:

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

(jest to obiekt typu EL odwołujący się do Map reprezentujący parametry żądania)

Zobacz też:

 135
Author: BalusC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:21

Oprócz poprzedniego postu możesz mieć

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

Jsf 2.0

 10
Author: tosha Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 21:24:02