2009-07-07 8 views
2

Zugriff auf nicht-Eigenschaften über jsp elJSP EL und Scriptlets - Wie Mischen jstl und scriptlet zu vermeiden Vars

In dem folgenden Code, ich brauche eine Methode zuzugreifen, die nicht eine Eigenschaft ist. Ich brauche eine c: foreach-Variable, um sichtbar zu sein, um auch der Test zu sein. Ich habe es mit jemand anderem zu tun. Ich bin nicht besonders glücklich mit dem Design, aber das ist einfach im Umgang mit jemand anderem Code.

Ich würde es vorziehen, nur die tatsächlich sichtbaren Rollen im Controller zu setzen, aber alle Daten werden von einem globalen Cache an mehreren Stellen gelesen. Der folgende Ramsch zeigt die wenigsten Codezeilen an, um das gewünschte Verhalten zu erzielen.

< c: forEach var = "Rolle" items = "$ {resource.value.rs}" >

// haben keinen Zugriff auf Rolle in scriptlet Kontext

< c: if Test = "<% role.isVisible (session.getAttribute ("authUser"))% >" >

</c: wenn > </c: foreach >

Eine einfache Lösung wäre .. wenn ich tun konnte:

// kann nicht isVisible durch el nennen Ich glaube nicht,

< c: if test = "$ {role.isVisible (session.authUser)} ">

aber ich bin mir ziemlich sicher, dass Sie das nicht tun können.

Ich bin im Prozess des Umschreibens, um Scriptlets zu vermeiden, aber wenn jemand eine schnelle Lösung hatte, würde ich es unterhalten.

Danke.

Antwort

1

Ich würde es vorziehen, nur die tatsächlichen sichtbaren Rollen in der Steuerung gesetzt, aber alle Daten aus einem globalen Cache an mehreren Stellen gelesen

kein Problem sein würde, wenn ich es verstanden korrekt.

ich die authuser gehe davon ist in der Sitzungsbereich

session.authUser 

Wenn nicht dann eingestellt:

<c:set var"authUser" value="${session.authUser}" scope="session" /> 

Alles, was Sie dann tun würde, ist, einen Weg finden authuser Fütterung von der Sitzung in die Rolle Bean ermöglicht Ihnen:

<c:if test="${role.isVisible}"> 

aah vielleicht nicht ..

ich glaube, ich

<mytag:isVisible role="${role}" user="${session.authUser}"> 
    // do work 
</mytag:isVisible> 
einen benutzerdefinierten Tag schreiben würde
Verwandte Themen