【问题标题】:Separating .xhtml in subfolders在子文件夹中分离 .xhtml
【发布时间】:2019-04-16 15:48:33
【问题描述】:

我在我的项目中使用 JSF,我想将 .xhtml 文件分隔到子文件夹中。

我当前的目录结构如下:

webapp/
    resources/
    WEB-INF/ (beans.xml, web.xml)
    faces/ (test.xhtml)
    login.xhtml
    register.xhtml
...

但是当我尝试访问 [PROJECT]/faces/test.xhtml 时,它永远无法正常工作。我收到 404 Not Found 错误,描述如下:“/test.xhtml Not Found in ExternalContext as a Resource。”

stackOverflow 问题:Organizing .xhtml files in subfolders 有完全相同的问题,但仍未收到有关此问题的任何有用答案。

作为替代方案,我当然也可以使用容器管理的身份验证,但我拒绝这样做,因为应该可以将不同的子文件夹中的视图分开,对吧?

web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>Project</display-name>
  <welcome-file-list>
    <welcome-file>timeline.xhtml</welcome-file>
  </welcome-file-list>

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

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

</web-app>

【问题讨论】:

    标签: jsf facelets


    【解决方案1】:

    好的,我通过删除以下代码行解决了我的问题:

      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
      </servlet-mapping>
    

    我不知道为什么这是个问题。

    【讨论】:

    • /faces/* url 模式是写入 url 的前缀,它不会产生子文件夹来搜索源文件。如果配置了上面的映射,/faces/something/some.xhtml会搜索/webapp/something/some.xhtml。如果删除此配置,则会自动配置默认 servlet 映射 *.jsf*.xhtml。因此/faces/something/some.xhtml 将搜索/webapp/faces/something/some.xhtml
    • @Selaron,谢谢你的回答!我现在清楚多了。这告诉我,如果您浏览到/faces/faces/some.xhtml,它也可以工作,但它没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2013-07-23
    • 2014-07-27
    • 1970-01-01
    相关资源
    最近更新 更多