<%
String fname=request.getParameter("fname");
String username=getVal("lname");
%>
<%!
private String getVal(String param){
return request.getParameter("fname");
}
%>
/*
--err
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP
PWC6197: An error occurred at line: 5 in the jsp file: /register.jsp
PWC6199: Generated servlet error:
string:///register_jsp.java:12: cannot find symbol
symbol : variable request
location: class org.apache.jsp.register_jsp
/*
Respuesta
JSP pasa por un compilador JSP que convertirá la página JSP en un servlet, autogenerando el código java.
Las directivas JSP instruyen al compilador JSP dónde colocar cada cosa. Todo lo que está dentro de <% %>
(llamado scriptlets JSP) se colocará dentro del método service()
del servlet generado. Todo dentro de <%! %>
(llamado declaraciones JSP) se convertirá en parte de la clase real del servlet generado, por lo que su getVal() se convertirá en un método de instancia.
El estándar request
(y session
y pageContext
etc) instancias de objeto se definen dentro del método service()
por lo que son, en efecto, sólo está disponible dentro de secciones scriptlet JSP.
Si está ejecutando en Tomcat, por ejemplo, puede ver el código Java generado para sus páginas JSP si mira dentro del directorio "trabajo" en la instalación de Tomcat. Puede ser interesante, si no puede obtener una mejor imagen de lo que está sucediendo "debajo del capó".
solicitud es accesible dentro de las expresiones scriptlet, porque es un argumento del método en el que se evalúan estas expresiones (_jspService
). Pero si quieres que esté disponible en sus propios métodos, debe declarar como argumento:
<%
String fname = request.getParameter("fname");
String username = getVal("lname", request);
%>
<%!
private String getVal(String param, HttpServletRequest request) {
return request.getParameter("fname");
}
%>
Tenga en cuenta que no debe utilizar scriptles y obtener parámetros de la petición de JSP en el primer lugar. Las JSP deben usarse para generar marcado. Realice su procesamiento en un servlet/acción, prepare los datos que JSP mostrará al crear y rellenar beans en el alcance de la solicitud, y luego envíelos a un JSP, que debe usar JSP EL, JSTL y otras etiquetas personalizadas exclusivamente.
- 1. cómo utilizar archivo de propiedades en JSP
- 2. Plantillas Underscore.js Dentro de JSP
- 3. Enum dentro de un JSP
- 4. Uso de JavaScript dentro de una etiqueta JSP
- 5. 'esta' palabra clave se refiere a qué objeto dentro de una función dentro de otra función?
- 6. cómo utilizar un método de objeto como una función de devolución de llamada
- 7. ¿Cómo usar con/dentro de una función?
- 8. Función dentro de una función.?
- 9. ¿Cómo puedo reutilizar HTML/JSP dentro de una página?
- 10. Llamar a un objeto dentro de una función
- 11. Función dentro de una función en Java
- 12. Objeto no encontrado error con ddply dentro de una función
- 13. ¿Declarar una función dentro de una función?
- 14. Cómo utilizar la función setInterval dentro del ciclo for
- 15. JSP: el acceso de enumeración dentro de las etiquetas JSP EL
- 16. ¿Cómo puedo obtener el nombre de la función dentro de una función de JavaScript?
- 17. objeto 'estático' en una función
- 18. Cómo utilizar un objeto de clase en C++ como un parámetro de función
- 19. En JSP, ¿cómo identificar el tipo de objeto presente en una lista?
- 20. Acceder a una función dentro de una función (función anidada?)
- 21. Cómo utilizar los registradores SLF4J en un JSP
- 22. Cómo utilizar una función de un XSL en otro
- 23. ¿Cómo crear una GUI dentro de una función en MATLAB?
- 24. Función anidada dentro del Objeto literal
- 25. ¿Cómo usar una función dentro de una cadena?
- 26. ¿Cómo puedo utilizar response.redirect desde dentro de una función definida en el archivo Class en C# 3.0
- 27. Cómo usar acast (reshape2) dentro de una función en R?
- 28. Función dentro de una función TSQL
- 29. jquery función dentro de una función
- 30. VBScript: ¿Cómo utilizar un objeto de diccionario devuelto por una función?