0

我正在尝试/fileprovider/name?param1=value&param2=otherValue在 JSF 2 Web 应用程序上实现自定义 PDF 文件 servlet (),但是在web.xml应用程序上声明它时,总是.xhtml为每个请求添加扩展名。我相信由于DEFAULT_SUFFIX上下文参数。

<!-- ... -->
<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>
<context-param>
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
    <param-value>/*.xhtml</param-value>
</context-param>

<servlet>
    <servlet-name>faces</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
    <servlet-name>MyPDFServlet</servlet-name>
    <servlet-class>com.company.servlet.MyPDFServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyPDFServlet</servlet-name>
    <url-pattern>/fileprovider/name</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>faces</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<!-- ... -->

抛出的异常是:

FacesFileNotFoundException:/name.xhtml 未在 ExternalContext 中作为资源找到

所以我相信路径没有正确映射,也许我错过了一些东西。

有什么方法可以指定我希望特定路径指向自定义 servlet 而无需添加.xhtml扩展名?

4

0 回答 0