java - mvc - pagecontext request contextpath in jsp not working
¿Qué hace exactamente este lenguaje de expresión ${pageContext.request.contextPath} en JSP EL? (3)
El pageContext
es un objeto implícito disponible en JSP. La documentación de EL dice
El contexto para la página JSP. Proporciona acceso a varios objetos, incluidos:
servletContext: ...
sesión: ...
solicitud: ...
respuesta: ...
Por lo tanto, esta expresión obtendrá el objeto HttpServletRequest
actual y obtendrá la ruta de contexto para la solicitud actual y le /JSPAddress.jsp
para crear un enlace (que funcionará incluso si se accede a la ruta de contexto de este recurso en los cambios).
El objetivo principal de esta expresión sería mantener los enlaces "relativos" al contexto de la aplicación y aislarlos de los cambios en la ruta de la aplicación.
Por ejemplo, si se accede a su JSP (llamada thisJSP.jsp
) en http://myhost.com/myWebApp/thisJSP.jsp
, la ruta del myWebApp
será myWebApp
. Por lo tanto, el enlace href generado será /myWebApp/JSPAddress.jsp
.
Si algún día, decide implementar el JSP en otro servidor con la ruta de contexto de corpWebApp
, la href generada para el enlace cambiará automáticamente a /corpWebApp/JSPAddress.jsp
sin ningún trabajo de su parte.
Tengo una aplicación web, donde tengo diferentes etiquetas de anclaje de navegación, como Home, Profile y etc.
Lo que quiero:
Cuando presiono etiquetas de anclaje como inicio o perfil. Solo quiero asegurarme de que el usuario actual obtenga su información en esa página de etiquetas / JSP.
Ejemplo de muestra que estoy intentando:
<a href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
Incluya <%@ page isELIgnored="false"%>
en la parte superior de su página jsp.
use request.getContextPath()
lugar de ${pageContext.request.contextPath}
en el lenguaje de expresiones JSP.
<%
String contextPath = request.getContextPath();
%>
out.println(contextPath);
salida: willPrintMyProjectcontextPath