2010-09-17 11 views

Respuesta

30

Lo necesita para acceder a no -variables implícitas. ¿Ahora tiene sentido?


actualización: A veces quisiera sólo para acceder a los métodos captadores de HttpServletRequest y HttpSession directamente. En JSP estándar, ambos solo están disponibles en ${pageContext}. Estos son algunos ejemplos de uso del mundo real:


página refrescante cuando la sesión caduca:

<meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval}"> 

Pasando ID de sesión a una aplicación (de modo que pueda comunicarse con servlet en la misma sesión):

<param name="jsessionid" value="${pageContext.session.id}"> 

Viendo algún mensaje sólo en la primera solicitud de una sesión:

<c:if test="${pageContext.session['new']}">Welcome!</c:if> 

nota que new tiene un tratamiento especial porque es una palabra clave reservada en El, al menos, ya que EL 2,2


Viendo usuario IP:

Your IP is: ${pageContext.request.remoteAddr}

Creación de vínculos de dominio relativo sin codificar ruta de contexto actual:

<a href="${pageContext.request.contextPath}/login">login</a> 

definir dinámicamente el <base> etiqueta (con un poco de ayuda JSTL functions taglib):

<base href="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, pageContext.request.contextPath)}/"> 

Etcétera. Eche un vistazo en el ya mencionado HttpServletRequest y HttpSession javadoc para conocer todos los métodos getter. Algunos de ellos también pueden ser útiles en JSP/EL.

+0

un ejemplo me despejaría. –

+0

como he mencionado para el lenguaje de expresión el u necesita pageContext. –

+4

No lo necesita para acceder a objetos o atributos implícitos. P.ej. '$ {param.name}' (para 'request.getParameter (name)'), '$ {cookie.name}' (para las cookies cuyo 'getName(). equals (name)'), '$ {header.name } '(para' request.getHeader (name) ') o' $ {attributename} '(para' pageContext.findAttribute (attributename) ') es suficiente. Todos los objetos implícitos se enumeran [aquí] (http://docs.sun.com/app/docs/doc/819-3669/bnaij?l=es&a=view). Por cierto, tu inglés es bastante pobre. Después de pensar una vez más, probablemente haya ambigüedad en tu pregunta original. Realmente necesita verificar y aclarar esto. – BalusC

-1

Las 11 variables EL implícitas se definen como Mapa, excepto la variable pageContext. pageContext variable proporciona métodos convenientes para acceder a los atributos de solicitud/respuesta/sesión o reenviar la solicitud. Claro que puedes hacer mucho más que eso

Cuestiones relacionadas