Qu'est-ce langage d'expression ${pageContext.demande.contextPath} exactement dans JSP EL?
J'ai une application web, où j'ai de navigation différentes balises d'ancrage tels que la Maison, le Profil et etc.
Ce que je veux:
Lorsque j'appuie sur d'ancrage des balises comme à la maison ou de profil. Je veux juste faire en sorte que les utilisateur obtient ses informations dans les Balises/Page JSP.
Exemple d'Échantillon que j'essaie:
<a href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
- Placez votre souris au-dessus de la
[el]
étiquette et cliquez sur "info" lien sur la popbox.
Vous devez vous connecter pour publier un commentaire.
La
pageContext
est un objet implicite disponibles dans les pages Jsp. La EL de la documentation ditDonc cette expression obtenez le courant
HttpServletRequest
objet et obtenir la chemin de contexte pour la demande actuelle et ajouter/JSPAddress.jsp
pour créer un lien (qui fonctionne même si le contexte-chemin de cette ressource est accessible à modifications).L'objectif principal de cette expression serait de garder vos liens relatifs à l'application de contexte et de s'isoler des modifications pour le chemin de l'application.
Par exemple, si votre page JSP (nommé
thisJSP.jsp
) est accessible àhttp://myhost.com/myWebApp/thisJSP.jsp
, thecontext chemin seramyWebApp
. Ainsi, le lien href généré sera/myWebApp/JSPAddress.jsp
.Si un jour, vous décidez de déployer la JSP sur un autre serveur avec le contexte de chemin de
corpWebApp
, le href généré pour le lien changera automatiquement pour/corpWebApp/JSPAddress.jsp
sans aucun travail de votre part.${pageContext.request.contextPath}
et${request.contextPath}
?request
est un objet implicite dans l'EL (il y a unrequestScope
si) - la de façon à obtenir une référence à l'instance de requête est par l'intermédiaire de lapageContext
comme dans la Fpo extrait.utilisation
request.getContextPath()
au lieu de${pageContext.request.contextPath}
en JSP langage d'expression.de sortie: willPrintMyProjectcontextPath
request.getContextPath()
et paspageContext.getRequest().getContextPath()
qui serait de la naïveté JSP pour scriptlet traduction.Inclure
<%@ page isELIgnored="false"%>
sur le dessus de votre page jsp.Pour mon projet d'installation de l', "${pageContext.demande.contextPath}"= se réfère à "src/main/webapp". Une autre façon de savoir est en cliquant droit sur votre projet dans Eclipse, puis allez à Propriétés: