[java] Come ottenere l'URL di base?



0 Answers

Variazione di JSTL 1.2 sfruttata dalla risposta di BalusC

<c:set var="baseURL" value="${pageContext.request.requestURL.substring(0, pageContext.request.requestURL.length() - pageContext.request.requestURI.length())}${pageContext.request.contextPath}/" />

<head>
  <base href="${baseURL}" />
Question

Ho questa struttura:

WebContent
    resources
        components
            top.xhtml

    company
        about_us.xhtml

    index.xhtml

top.xhtml è un componente, utilizzato anche in index.xthml e about_us.xhtml .

top.xhtml

<ul>
    <li><a href="index.xhtml">Home</a></li>
    <li><a href="company/about_us.xhtml">About us</a></li>
    ...
</ul>

Quindi il mio problema è che, quando la pagina corrente è index.xhtml il componente genera correttamente gli URL, ma quando la pagina corrente è about_us.xhtml , genera URL errati. Non posso usare il percorso relativo perché genererà anche l'URL sbagliato. Penso che sia perché il componente è basato sul percorso corrente della pagina *.xhtml .

L'unica soluzione che ho potuto scoprire è:

<ul>
    <li><a href="${pageContext.request.contextPath}/webname/index.xhtml">Home</a></li>
    <li><a href="${pageContext.request.contextPath}/webname/about_us.xhtml">About us</a></li>
    ...
</ul>

Ma penso che non sia affatto 'elegante'. Qualche idea?




Related



Tags

java java   jsf   jsf-2