Probleme mit h:DataTable bei JSF

Konobi

Mitglied
Hallo,

ich lese eine Liste von Datensätzen aus der Datenbank und befühle damit mein DataTable. Die einzelnen Datensätze kann man dann Bearbeiten. Nun hab ich folgendes Problem, die Datensätze sollen nur von den Benutzern "Bearbeitet" werden können der diese auch erstellt hat.

Code:
<h:dataTable style="margin-top: 20px;" value="#{verteilerListe.verteiler}" 
			binding="#{verteilerListe.data}" var="verteiler" 
			columnClasses="idColumn, mailVerteilerColumn, angelegtWannColumn, informationColumn" 
			rowClasses="oddRow, evenRow"
			headerClass="tableHeader" width="90%" >
	<h:column>
    	<f:facet name="header">
	    	<h:outputText value="ID"/>
	    </f:facet>
		<h:outputText value="#{verteiler.ID}"/>
	</h:column>
	<h:column>
	    <f:facet name="header">
	    	<h:outputText value="Mail Verteiler"/>
	    </f:facet>
		<h:outputText value="#{verteiler.mailVerteiler}"/>
        </h:column>
	<h:column>
	    <f:facet name="header">
	    	<h:outputText value="Angelegt Wann"/>
	    </f:facet>
		<h:outputText value="#{verteiler.angelegtWann}"/>
        </h:column>
        <h:column>
            <h:commandLink action="#{verteilerListe.showMailVerteilerAction}">
        	<h:outputText value="Information"/>
            </h:commandLink>
        </h:column>
        <h:column>
		<h:commandLink action="#{verteilerListe.editMailVerteilerAction}">
        	    <h:outputText value="Bearbeiten"/> 
                </h:commandLink>
        </h:column>
  </h:dataTable>

Also der Link "Bearbiten" soll nur dann angezeigt werden, wenn der remoteUser == dem Benutzer ist der im Datensatz steht. Ich habe es schonmal mit den Attribute "disabled" ausprobiert, aber das gibt es nicht bei h:commandLink.

Gibt es eine Möglichkeit das vorher abzufragen und dann erst den Link für die Datensätze anzulegen wo der remoteUser == dem Benutzer ist der in dem Datensatz steht?

MFG

Konobi
 
Hi,
das was du suchst ist das rendered-Attribut.
Diesem gibtst du ein boolean-Wert, rendered="true" wird angezeigt rendered="false" nicht.
entweder du zeigst den link nicht an oder das komplette column nicht.
Code:
<h:commandLink rendered="backinbean.booleanwert">.....</h:commandLink>
/*bzw*/
<h:column rendered="backinbean.booleanwert">.....</h:column>

/*in deiner managed Bean muss dann  sowas stehen wie: */

private boolean booleanwert=(remoteUser == dem BenutzerderimDatensatzsteht )
/*getter und setter methoden nicht vergessen*/

Das wars ;)
 
Zurück