Impossibile accedere all'oggetto implicita dall'interno metodo in file di tag JSP personalizzati
-
23-10-2019 - |
Domanda
Sto cercando di creare un tag jsp personalizzato. Tutto sta funzionando benissimo, tranne per il fatto che ho la richiesta sembra essere out-of-scope per la mia funzione personalizzata.
Ecco il bit rilevante dal file .tag:
<%!
private String process(String age, BigDecimal amount)
{
//Attempting to access request here results in an compile time error trying to:
String url=request.getURL;
}
%>
Sono molto nuovo per JSP, quindi sono sicuro che mi manca qualcosa obvious..but io non riesco a capire cosa. Ogni aiuto è apprezzato.
Soluzione
Ho il sospetto che sia perché la funzione personalizzata in sé non è definita entro l'esecuzione principale della chiamata di servizio del JSP, ma è definita come un metodo separato all'interno della classe JSP generata. Come tale, la variabile request
non è visibile tot implicitamente.
Per chiarire, se si ha uno sguardo alla sorgente Java che il compilatore JSP genera (che è appserver specifico), si vedrà come si blocca insieme.
Credo che si dovrà dichiarare l'oggetto di richiesta come parametro alla funzione, e passare in quando lo si richiama.
<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
String url=request.getURL;
....
}
%>