No se puede acceder al objeto Implicle desde el método dentro del archivo de etiqueta JSP personalizado

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

  •  23-10-2019
  •  | 
  •  

Pregunta

Estoy intentando crear una etiqueta JSP personalizada. Todo funciona bien, excepto por el hecho de que la solicitud parece estar fuera de alcance para mi función personalizada.

Aquí está el bit relevante del archivo .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;
        }
%>

Soy muy nuevo en JSP, así que estoy seguro de que me estoy perdiendo algo obvio ... pero parece que no puedo descubrir qué. Se agradece cualquier ayuda.

¿Fue útil?

Solución

Sospecho que eso se debe a que la función personalizada en sí no se define dentro de la ejecución principal de la llamada de servicio del JSP, pero se define como un método separado dentro de la clase JSP generada. Como tal, el request La variable no es visible por completo implícitamente.

Para aclarar, si echó un vistazo a la fuente de Java que genera el compilador JSP (que es específico de AppServer), verá cómo se cuelga.

Creo que tendrá que declarar el objeto de solicitud como un parámetro para su función y pasarlo cuando lo invoque.

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top