Parameterübermittlung in JSF

Status
Nicht offen für weitere Antworten.

reibi

Top Contributor
Hallo,

habe folgendes Problem:
Ich habe eine Klasse namens User mit folgender Funktionalität:

Code:
class User{
public boolean isAllowed(){


boolean retVal = false;


return retVal;

}
}


Auf der FrontSeite greife ich folgendermassen darauf zu:


<h:eek:utputLabel rendered="#{User.allowed}">


Wie kann ich einen Parameter auf der Frontseite mit übergeben welcher zB einen int beinhaltet

Also ich will praktisch sowas hier benutzen

public boolean isAllowed(int myIntValue){..}

vielen Dank für die Hilfe
;-)
 

WeirdAl

Bekanntes Mitglied
Hi,
selbst erstellte Methoden mit Parameterübergabe kann man in JSF nicht in der View nutzen. Wenn du eine Methode mit Parameterübergabe nutzen willst, kannst du deinen Wert in der Actionmethode setzen oder über den <f:param>-Tag in der View übertragen.

Cu
Alex
 

bolda

Mitglied
Hallo

Ich glaube, dass Reibi das selbe Problem hat wie ich.
Und zwar möchte ich den Link nur dann darstellen, wenn der User die entsprechende Berechtigung hat.
Das mit dem <f:param ist dann bereits zu spät. Dieser wird ja erst bei submit des Links mitgegeben.


Ich könnte mir folgendes vorstellen: (geht aber nicht, oder ich mache etwas falsch)
Es geht um das for:

Code:
<h:commandLink action="#{User.details}" value="Ihre Einstellungen" rendered="#{User.allowed}" for="AlleUser"/>
<h:commandLink action="#{User.edit}" value="Ihre Einstellungen bearbeiten" rendered="#{User.allowed}" for="Administrators,Helpdesk"/>
<h:commandLink action="#{User.del}" value="User löschen" rendered="#{User.allowed}" for="Administrators"/>

Gruss
Bolda
 

WeirdAl

Bekanntes Mitglied
Hi,
wenn Du sowas vorhast, musst Du dich ja so gesehen irgendwo als User eingeloggt haben. An dieser Stelle kannst du dann in der Login-Submit-Action einen Wert in die Session schreiben und dann per Context auf eine Variable (zb. logged in == true oder UserSessionObject != null) zugreifen.
Wenn du JSF 1.2 benutzt kannst Du z.B. in JSP A nach erfolgreichem Login eine userID in die Session schreiben und dann in allen anderen Managed-beans diesen Wert mit #{sessionScope.userID} initialisieren. Dafür muss die Property jedoch in faces-config eingetragen werden.

Cu
Alex
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben