2017-04-24 1 views
1

Ich versuche, das Wert-Attribut innerhalb einer Primefaces-DataTable-Tag zu ändern. Meine Web-Anwendung hat verschiedene Benutzerrollen. Ich kann die aktuell angemeldete Benutzerrolle abrufen. Jetzt muss ich die <p:dataTabe> anpassen, um die Tabelle mit User-Role-basierten Daten gefüllt zu bekommen. Im Folgenden meines html-tag:HTML: Ändern Tag-Attribut "Wert"

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

Was ich will ist die value="#{parentController.inactiveParents}" zu value="#{parentController.parents}" ändern.

Ist es möglich, einen if-Block oder ähnliches einzuschließen und wie würde es aussehen?

Ich habe bereits versucht, ein <script> -Tag einzufügen, aber der Compiler sagt das <p:dataTable> -Tag ist nicht geschlossen.

LÖSUNG:

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

+0

Sie könnten mit der ternären Operator. Siehe zum Beispiel: http://stackoverflow.com/questions/22382466/jsf-ternary-operator-in-value-attribute –

+0

thx. Für mich geht das – SteveOhio

Antwort

0

Wäre es nicht besser organisiert und Best-Practice sein Wert haben = "# {parentController.inactiveParents}" und die Methode ParentController.getInactiveParents haben () Handle die Benutzerrollenlogik in der Backing Bean? Es ist eine gute Idee zu vermeiden, diese Art von Logik in HTML zu schreiben, da es schwer zu debuggen ist.