Jag har användarnas inloggningsuppgifter sparade i en javaböna med sessions-scope.
I min andra javaböna skall jag connecta till en databas och exekvera en SQL-sats där användarens anv.namn ingår. Det är alltså därför som jag behöver komma åt bönan med sessionscope, från "databas-bönan". Jag vill nämligen använda de uppgifter som finns i inloggningsbönan i min SQL-sats i databas-bönan.
Jag kan förvisso skapa SQL-strängen på någon JSP-sida, (som har tillgång till sessionsbönan). Men detta känns inte som en snygg lösning.
Det borde väl rimligtvis gå att komma åt en böna med sessionsscope från en annan böna?? Man kan ju komma åt sessionsbönor från JSP-sidor!!
Fast jag löste det på ett annat sätt... Jag skapade en ny metod i min DB-böna:
db_böna.setUsername(användarböna.getUsername())
Får duga....
Vet du förresten hur man instansierar en böna (med sessions-scope) på en jsp-sida, utan att använda <jsp:useBean scope"session" class"blabla" name="blabla"> ???
Dvs. något i stil med
TestBöna böna = new TestBöna();
jspcontainer.setScope(böna, "session") // någonting åt det hållet??
Nope. Taggen <jsp:useBean > säger en hel del till jsp-kompilatorn. Jag har gjort det någon gång genom att mer eller mindre kopiera den källkod som finns för <jsp:useBean> taggen och det är inte helt trivialt.
Annars kan man alltid göra så att man skapar interface i bönorna som skapar modeller av bönan. Det gör att man från andra bönor kan t.ex. få fram UserModel från valfri implementation av användarböna genom att anropa "getModel()". Man ska då få ut ett "objekt" som gör att man kan komma åt alla parametrar i anropad böna.