26. april 2010 - 13:26Der er
9 kommentarer og 1 løsning
Tilgå Session fra Declaration
Jeg har oprettet en java.util.list hvori jeg har puttet data. Det virker fint, da jeg også kan trække data derudfra igen.
Men nu har jeg lavet en declaration i min kode, hvori jeg skal trække noget bestemt data ud fra listen, hvis nogle bestemte kriterier i listen er opfyldt. Her opstår problemet. Jeg har tidligere fået declarationen til at virke uden brug af listen. Jeg har både angivet listen som global variabel inde på siden, samt gemt den i sessionen. Når jeg prøver at tilgå sessionen inde i declarationen, så fortæller compileren:
cannot find symbol symbol : variable request
Er der ikke tilgang til request inde i en declaration? Jeg har prøvet at komme om ved det problem inde i declarationen, ved:
men da det sker inde midt i en try-catch, så skriver compileren pludselig "catch without try". Der kommer desuden en masse compiler-fejl, såsom: "illegal start of expression private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();"
og
"illegal start of expression private static java.util.Vector _jspx_dependants;"
Skyldes dette, at man ikke har tilgang til sessionen inde i en declaration? I så fald, hvordan kan det løses? Man kan vel trække sessionen ud lige før kaldet til denne declaration, og så sende sessions-objektet med ind som argument, men det ser da ikke så kønt ud. Er jeg på rette vej, eller findes der andre smarte løsninger?
Ja, jeg tænkte det nok. Jeg gik ud fra, at <%! %> skal kende alle variabler ved compile-time. Jeg fandt også lidt dokumentation senere, som kunne tyde på det.
Nååå, den bliver sendt med i "HttpServletRequest request" ? Ja, jeg havde jo forstillet mig, at man skulle oprette en instans, lægge indholdet af sessionen deri, og så sende instansen til metoden som argument. Men det her ser da noget mere elegant ud :-)
Jeg bruger desværre ikke TomCat. Jeg bruger GlassFish V3.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.