Impossibile accedere all'oggetto implicita dall'interno metodo in file di tag JSP personalizzati

StackOverflow https://stackoverflow.com/questions/2958817

  •  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.

È stato utile?

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;
   ....
}
%>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top