2010-10-01 20 views
0

J'utilise des balises JSF dans un fichier XHTML. Mon intention est d'activer ou de désactiver un élément de menu contextuel <rich:MenuItem> en définissant l'attribut "disabled" sur "true" ou "false" de manière appropriée. Pour ce faire, je suis en utilisant une variable de backing bean dans un opérateur ternaire et la mise en valeur <f:param> soit « vrai » ou « faux » en fonction de la variable de haricot, comme ci-dessous:JSF: L'opérateur ternaire utilisé pour affecter une valeur à un <f:param> échoue

<rich:componentControl event="oncontextmenu" for="network-tree-menu" 
operation="show"> 
     <f:param id="nestlevel" value="#{item.nestLevel > 10 ? 'true' : 'false'}" 
     name="nestlevel" /> 
</rich:componentControl> 

item est le soutien Bean et item.nestLevel est un nombre entier.

J'utilise cette valeur <f:param> plus tard dans le fichier XHTML comme ci-dessous:

<rich:contextMenu ... 
    <rich:menuItem id="abc" ajaxSingle="true" disabled="{nestlevel}" 
      onclick="doSomething();" value="Do something..."> 
</rich:contextMenu> 

Ce ne fonctionne pas !! L'élément de menu est toujours activé, (je suppose que c'est le comportement par défaut) même si le résultat de l'opération ternaire est "vrai". Y at-il quelque chose qui me manque ici à la syntaxe, ou est-ce qu'il y a une autre façon de faire cette activation conditionnelle des éléments du menu contextuel dans le fichier XHTML?

Merci d'avance.

Cordialement,
Nagendra U M

+0

êtes-vous en mesure de mettre en valeur managed bean dire vrai ou faux que vous parlez? –

+0

Je n'ai aucune idée de la façon dont les choses RichFaces sont censées fonctionner, mais 'disabled =" {nestlevel} "' n'est pas du tout valide. – BalusC

Répondre

1

Que diriez-vous ceci:

<f:param id="nestlevel" value="#{item.nestLevel > 10}" name="nestlevel" /> 
+0

Cela a fonctionné, dans le sens où la valeur {nestlevel} contient "true" ou "false" de manière appropriée. (J'ai vérifié cela en utilisant des alertes). Toutefois, l'élément de menu contextuel est toujours activé même si la valeur de {nestlevel} est "true". Cela signifie-t-il que l'attribut "disabled" de la balise n'accepte pas les valeurs EL? Mon intention est d'activer et de désactiver conditionnellement un élément de menu contextuel basé sur la valeur {nestLevel}. S'il vous plaît aider !! –