2010-06-28 6 views
4

J'y ai réfléchi un moment - je n'ai pas eu une bonne idée.Comment afficher deux types de composants différents basés sur une variable booléenne dans jsf?

C'est le problème. Je vais devoir afficher un texte dans une zone de texte ou en tant que texte de sortie. Comment est-ce que je fais cela en utilisant une variable booléenne dans JSF?

Je ne veux pas faire un h: inputText et désactiver/faire en lecture seule, il basé sur le booléen, je veux afficher une étiquette propre ou un texte de sortie.

suggestions?

Répondre

6

Utilisez l'attribut rendered. Cela prend une expression booléenne.

Si l'expression true, sera rendu le composant dans l'arborescence des composants et être visibles dans la sortie HTML généré. S'il évalue false, il ne sera pas rendu et ne sera donc pas émis dans la sortie HTML.

Voici d'autres exemples d'expression d'une expression booléenne.

<h:someComponent rendered="#{bean.booleanValue}" /> 
<h:someComponent rendered="#{bean.intValue > 10}" /> 
<h:someComponent rendered="#{bean.objectValue == null}" /> 
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" /> 
<h:someComponent rendered="#{!empty bean.collectionValue}" /> 
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" /> 
<h:someComponent rendered="#{bean.stringValue == 'oneValue' || bean.stringValue == 'anotherValue'}" /> 
+0

+1 Simple et élégant. Je vais devoir m'entraîner à penser mieux.hmmm ... Merci BalusC. – gekrish

+0

De rien. – BalusC

Questions connexes