2016-09-23 2 views
0

J'ai un site Web sur lequel sont affichées certaines listes. Maintenant, les listes sont affichées dans deux colonnes, même s'il n'y a que 2 ou 3 éléments de liste (semble stupide), mais je veux être affiché dans une seule colonne.If-Else instruction avec JSF

Est-il possible d'ajouter une instruction if-else avec les opérateurs <?

C'est ce que je l'ai fait, mais ne fonctionne pas:

<ui:if value="#{graphicDynamic.elements.size < 3}" var="hotspots" > 
    ...do the one column thing... 
</ui:if> 
<ui:else> 
    ..do the other thing... 
</ui:else> 
+0

Il est similaire, mais pas ce que j'ai demandé .. déjà vérifié –

+0

Voir http://stackoverflow.com/questions/7145574/using-greater-than-logical-expression-in-rendered-attribute –

+0

Peut-être essayer le rendu tag –

Répondre

0

une solution de création, peut-être quelqu'un aide parfois ... Quoi qu'il en soit, voici ma solution:

<!-- Has more then 3 elements - display hotspots in two columns --> 
<h:outputLabel rendered="#{SomeClass.hasMoreThanThree}" >   
    Render the site elements for this case 
</h:outputLabel>    

<!-- Has less then or 3 elements - display hotspots in one column --> 
<h:outputLabel rendered="#{not SomeClass.hasMoreThanThree}" >   
    Render the site elements for this case 
</h:outputLabel> 

En le contrôleur:

public class SomeClass implements Serializable { 

private boolean hasMoreThanThree; 

public SomeMethod(SomeType someParameter) { 
    ...some code... 
    setHasMoreThanThree(someList.size()); 
    ...some more code.. 
} 

public boolean getHasMoreThanThree() { 
    return hasMoreThanThree; 
} 

public void setHasMoreThanThree(int size) { 
    if (size >= 3){ 
    this.hasMoreThanThree=true; 
    } 
} 
0

ne serait-pas les éléments suivants ont été plus simple

<!-- Has more then 3 elements - display hotspots in two columns --> 
<h:outputLabel rendered="#{bean.value ge 3}" >   
    Render the site elements for this case 
</h:outputLabel>    

<!-- Has less then or 3 elements - display hotspots in one column --> 
<h:outputLabel rendered="#{bean.value le 3}" >   
    Render the site elements for this case 
</h:outputLabel> 
+0

Il le ferait, mais le cas "taille = 3" ne serait pas couvert. J'ai essayé: mais l'opérateur "> =" n'a pas fonctionné, rendu-Exception, ou quelque chose comme ça s'est passé ... –

+0

Ok simple changement changé 'gt' à' ge' pour> = – PDStat

+0

Notez évidemment si sa taille est de 3 alors les deux étiquettes ci-dessus seraient rendues. Si vous ne voulez pas afficher la deuxième étiquette de sortie pour les cas où la taille est inférieure à 3, utilisez 'lt' au lieu de' le' – PDStat