125 votes

Quel est le meilleur moyen d'obtenir l'URL actuelle dans Spring MVC?

J'aimerais créer des URL basées sur l'URL utilisée par le client pour la demande active. Y a-t-il quelque chose de plus intelligent que de prendre l'objet HttpServletRequest actuel et ses méthodes getParameter...() pour reconstruire l'URL complète, y compris (et uniquement) ses paramètres GET.

Clarification: Si possible, je veux renoncer à utiliser un objet HttpServletRequest .

135voto

Daff Points 22358

Eh bien, il ya deux méthodes pour accéder à ces données plus facile, mais l'interface n'offre pas la possibilité de télécharger l'intégralité de l'URL avec un seul appel. Vous devez créer manuellement:

public static String makeUrl(HttpServletRequest request)
{
    return request.getRequestURL().toString() + "?" + request.getQueryString();
}

Je ne connais pas le moyen de le faire avec toute Spring MVC installations.

Si vous souhaitez accéder à la Demande sans passer partout, vous devrez ajouter un écouteur dans l'web.xml:

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

Et puis l'utiliser pour obtenir de la demande lié à la Thread en cours:

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest()

8voto

user2181444 Points 101

en fichier jsp:

 request.getAttribute("javax.servlet.forward.request_uri")
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X