tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
790
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von mschlegel
    mschlegel mschlegel ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    202
    Hallo

    Ich habe gerade ein Problem mit einem Template. Damit die Teile wiederverwendbar sind, habe ich es in mehrere JSPs aufgeteilt, allerdings weis ich jetzt nicht wie ich mit meiner Login-Logik weitermachen soll.

    Das letzte mal hatte ich es so gemacht, dass diese Funktionalität einfach komplett in der login.jsp liegt die vom Template inkludiert wird. Jetzt kam mir aber die Idee, ob es nicht irgendwie möglich ist die dafür vorgesehene LoginBean über mehrere JSPs zu verwenden.

    Also im template,jsp etwas wie
    HTML-Code:
    <jsp:useBean id="login" class="blubb.myClass" scope="session"/>
    Ist es jetzt möglich auf diese Bean in der login.jsp zuzugreifen? Für irgend etwas muss dieser scope ja da sein
    Warum ich das machen möchte: ich dachte dass ich eventuell in anderen Teilen prüfen möchte ob der Besucher angemeldet ist (sprich login.isUserLoggedIn()) um dann ein paar layoutanpassungen vorzunehmen.
    Oder wäre diese, soweit überhaupt möglich, ein Anti-Pattern?
     

  2. #2
    Avatar von mschlegel
    mschlegel mschlegel ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    202
    Habe die Lösung jetzt selber gefunden.

    Ich musste die Variable zusätzlich noch mit der JSTL-core setzen
    HTML-Code:
    <jsp:useBean id="test" class="de.blubb.clazz">
       <% test.init() %>
    </jsp:useBean>
    
    <c:set var="test" value="${test}" scope="session"/>
    danach konnte ich in einer anderen JSP mitels
    HTML-Code:
    <jsp:useBean id="test" type="de.blubb.clazz" scope="session" />
    darauf zugreifen. Der Unterschied ist marginal, anstatt von class muss man type angeben.

    Es war dann noch etwas schwierig nachdem man sich auf der Seite eingelogt hatte, denn dann wird eine neue Session erstellt und er kann das vorherige Objekt nicht finden. Dazu musste ich dann im Loginmethode die Klassenreferenz manuell zur (neuen) Session hinzufügen.
     

Ähnliche Themen

  1. jsp:useBean kein Konstruktoraufruf?!
    Von Nospherates im Forum Java
    Antworten: 1
    Letzter Beitrag: 21.04.09, 09:58