2017-04-24 4 views
1

J'essaie de changer l'attribut value dans un tag primefaces-dataTable. Mon application Web a différents rôles utilisateur. Je suis en mesure d'obtenir le nom d'utilisateur actuellement connecté. Maintenant, j'ai besoin d'ajuster le <p:dataTabe> pour obtenir la table remplie de données basées sur le rôle de l'utilisateur. Ci-dessous mon html-tag:HTML: Modifier la "valeur" du tag-attribute

<p:dataTable id="parentTable" var="parent" value="#{parentController.inactiveParents}"> 

Ce que je veux est de changer le value="#{parentController.inactiveParents}" à value="#{parentController.parents}".

Est-il possible d'inclure un if-block ou quelque chose comme ça et à quoi cela ressemblerait-il?

J'ai déjà essayé d'insérer un <script> -tag mais le compilateur dit que le <p:dataTable> -tag n'est pas fermé.

SOLUTION:

<p:dataTable id="parentTable" var="parent" value="#{sessionInfoBean.hasRole('ADMIN') ? parentController.parents : parentController.inactiveParents}">

+0

Vous pouvez utiliser l'opérateur ternaire. Voir par exemple: http://stackoverflow.com/questions/22382466/jsf-ternary-operator-in-value-attribute –

+0

thx. ça marche pour moi – SteveOhio

Répondre

0

Ne serait-il plus organisé et plus pratique d'avoir value = "# {} parentController.inactiveParents" et ont la méthode ParentController.getInactiveParents () gérer la logique de rôle de l'utilisateur dans le bean backing? C'est une bonne idée d'éviter d'écrire ce genre de logique en HTML, car il est difficile de déboguer.