Come faccio a anteporre <%= request.getContextPath() %> per tutti gli Url relativi all'interno di una pagina jsp?
Domanda
L'oggetto dice tutto, o quasi.Come faccio a correggere automaticamente le pagine jsp in modo che gli Url relativi sono mappato il percorso del contesto invece di root del server?Che è dato, per esempio,
<link rel="stylesheet" type="text/css" href="/css/style.css" />
come faccio a impostare-up le cose in modo che le mappe di css per my-server/my-context/css/style.css
invece di my-server/css/style.css
?C'è un modo automatico per farlo, altro che cambiare tutte le linee come quella di cui sopra per
<link rel="stylesheet" type="text/css"
href="<%= request.getContextPath() %>/css/style.css" />
Soluzione
Guardare il <BASE HREF="">
tag.Questo è un tag HTML, il che significa tutti i link sulla pagina dovrebbe iniziare con il vostro URL di base.
Per esempio, se è stato specificato <BASE HREF="http://www.example.com/prefix">
e poi aveva <a href="/link/1.html">
di seguito il link dovrebbe, in realtà, si prefix/link/1.html.Questo dovrebbe funzionare anche su <LINK>
(foglio di stile) tag.
Altri suggerimenti
Il modo migliore è HttpServletResponse.encodeURL () che costruirà l'URL appropria