Web applications JSF:webapp子目录中网页的超链接

Web applications JSF:webapp子目录中网页的超链接,web-applications,jsf,hyperlink,directory,Web Applications,Jsf,Hyperlink,Directory,我在/src/main/webapp/pages/文件夹中保存了一个.xhtml页面列表。 现在我想创建指向它们的超链接。目前唯一有效的是默认主页:/src/main/webapp/pages/default.xhtml <!-- Welcome page --> <welcome-file-list> <welcome-file>/pages/default.xhtml</welcome-file> </welcome-

我在/src/main/webapp/pages/文件夹中保存了一个.xhtml页面列表。 现在我想创建指向它们的超链接。目前唯一有效的是默认主页:/src/main/webapp/pages/default.xhtml

  <!-- Welcome page -->
  <welcome-file-list>
    <welcome-file>/pages/default.xhtml</welcome-file>
  </welcome-file-list>

  <!-- JSF mapping -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Map these files with JSF -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

/pages/default.xhtml
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
*.jsf
Facesservlet
*.xhtml
对于其他人,如果我有以下链接:

<a href="/pages/page1.xhtml">Page 1</a>

我得到以下错误:

/在中找不到page1.xhtml 作为资源的外部上下文


我的问题是:如何在a href中相对于webapp根目录指定我想要的页面

关于相对链接,您需要了解两件主要的事情(即不以http:///开头的链接):

  • 以斜杠开头的相对链接是相对于域根的
  • 没有前导斜杠的相对链接是相对于请求URL的(就像在浏览器地址栏中一样)

如果当前URL为,且页面包含链接

<a href="/pages/page1.xhtml">
<a href="pages/page1.xhtml">
<a href="pages/page1.xhtml">
另见:
<a href="/app/pages/page1.xhtml">
<a href="#{request.contextPath}/pages/page1.xhtml">