Se faccio:Un file di tag JSP può accedere al suo PageContext di JSP di chiamata?
<% pageContext.setAttribute("foo", "bar"); %>
<custom:myTag/>
sembra che dovrei essere in grado di fare:
<%= pageContext.getAttribute("foo") %>
all'interno di myTag.tag ... ma ovviamente non posso perché i doesn di file tag 'ha accesso a pageContext (invece ha accesso a un jspContext ... che non ha gli stessi attributi del pageContext della pagina chiamante).
Ora, è possibile accedere alla pageContext via ELScript:
${pageContext}
ma che non aiuta perché ELScript non ha modo di passare argomenti, quindi non si può fare:
${pageContext.getAttribute("foo")}
Tuttavia, il fatto che ELscript possa accedere al contesto della pagina e il fatto che il tag possa accedere a tutti i tipi di variabili come jspContext, è necessario che ci sia un modo per un tag di accedere (in un modo scriptlet/Java, non solo in ELScript) un attributo dal pageContext del JSP chiamante.
Esiste?
Grazie, ma il fatto è che ho già ottenuto le variabili che voglio nel pageContext e abbastanza codice (legacy) che li fa riferimento lì che non voglio doverle modificare per richiedere attributi. Quindi * posso * inserire solo copie duplicate nella richiesta, ma speravo che ci fosse un altro modo per farlo. Oh, e queste variabili verranno superate MOLTO in un sacco di tag se li creo attributi, quindi speravo davvero in una soluzione "dietro le quinte". Se non è possibile accedere al pageContext del JSP dal tag però ... indovina sono sfortunato :-( – machineghost
Puoi semplicemente accedere al contesto attuale della pagina con (PageContext) getJspContext(). Vedi la mia risposta qui sotto. –
@ Jason: la domanda non riguardava questo. – BalusC