40 votes

Obtenir l'URL racine/base dans Spring MVC

Quelle est la meilleure façon d'obtenir l'URL racine/base d'une application Web dans Spring MVC ?



URL de base = http://www.example.com ou http://www.example.com/VirtualDirectory

46voto

Enoobong Points 351

je préfère utiliser

final String baseUrl = ServletUriComponentsBuilder.fromCurrentContextPath().build().toUriString();

Il renvoie une URL, un schéma, un nom de serveur et un port de serveur entièrement construits, plutôt que de concaténer et de remplacer des chaînes qui sont sujettes aux erreurs.

28voto

Nahn Points 538

Si l'URL de base est " http://www.example.com ", utilisez ce qui suit pour obtenir la partie " www.example.com ", sans le " http:// " :

Depuis un contrôleur :

 @RequestMapping(value = "/someURL", method = RequestMethod.GET)
public ModelAndView doSomething(HttpServletRequest request) throws IOException{
    //Try this:
    request.getLocalName(); 
    // or this
    request.getLocalAddr();
}

Depuis JSP :

Déclarez ceci en haut de votre document :

 <c:set var="baseURL" value="${pageContext.request.localName}"/> //or ".localAddr"

Ensuite, pour l'utiliser, référencez la variable :

 <a href="http://${baseURL}">Go Home</a>

18voto

nxhoaf Points 541

Vous pouvez également créer votre propre méthode pour l'obtenir :

 public String getURLBase(HttpServletRequest request) throws MalformedURLException {

    URL requestURL = new URL(request.getRequestURL().toString());
    String port = requestURL.getPort() == -1 ? "" : ":" + requestURL.getPort();
    return requestURL.getProtocol() + "://" + requestURL.getHost() + port;

}

11voto

Salim Hamidi Points 1316

request.getRequestURL().toString().replace(request.getRequestURI(), request.getContextPath())

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