2010-08-12 4 views
3

Je cherche comment activer et désactiver les composants de icefaces basés sur le login d'utilisateur? Par exemple:Comment activer/désactiver des composants dans jsf/icefaces?

Si vous vous connectez en tant qu'administrateur, vous devez activer les autres composants et vous connecter en tant qu'utilisateur, désactiver certains composants et ajouter d'autres composants dans une page? Comment faire cette fonction dans jsf/icefaces?

Ces deux activent et désactivent en une page.

J'applique vos suggestions.

Répondre

13

Utilisez l'attribut rendered. Il accepte une expression booléenne. Ajoutez une méthode à l'entité User comme isAdmin() ou getRole() et laissez l'attribut rendered intercepter sur cela. Pour le cas qui vous intéresse, voici d'autres exemples d'utilisation des expressions booléennes dans EL. Dans le cas qui vous intéresse, voici d'autres exemples d'utilisation des expressions booléennes dans EL.

syntaxe JSP compatible:

<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.enumValue == 'ONE' || bean.enumValue == 'TWO'}" /> 

syntaxe Facelets compatible avec certains XML-sensitive opérateurs EL comme > et & changé:

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

ne JSF2 ne permettent plus l'utilisation de '&&', parce que cela me donne ce 'Le nom de l'entité doit immédiatement suivre le « & » dans le référence d'entité ». Cependant, si j'utilise le mot-clé 'and', alors cela fonctionne –

+1

@Harry: Oh désolé, c'était le style JSP. En XML (XHTML, Facelets), vous devez échapper aux entités XML. Le '&' est l'un d'entre eux. Oui, 'and' est le bon mot-clé. Pour le reste, [voici un aperçu] (http://download.oracle.com/javaee/5/tutorial/doc/bnahq.html#bnaik). – BalusC

+0

merci beaucoup: D –

0

En ICEfaces pour les contrôles qui a l'usage de propriété disabled:

<ice:inputText disabled="[true/false]"/> 

Exemple

je dans mon code:

<ice:inputText disabled="#{ABMUsuario.accion!='3'}"/> 
Questions connexes