Jsf 声明自定义PDF servlet与.xhtml扩展冲突

Jsf 声明自定义PDF servlet与.xhtml扩展冲突,jsf,servlets,servlet-mapping,Jsf,Servlets,Servlet Mapping,我试图在JSF2 web应用程序上实现一个自定义PDF文件servlet/fileprovider/name?param1=value¶m2=otherValue,但是当在web.xml上声明它时,应用程序总是向每个请求添加.xhtml扩展名。我相信是由于默认的_后缀上下文参数 <!-- ... --> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name&g

我试图在JSF2 web应用程序上实现一个自定义PDF文件servlet/fileprovider/name?param1=value¶m2=otherValue,但是当在web.xml上声明它时,应用程序总是向每个请求添加.xhtml扩展名。我相信是由于默认的_后缀上下文参数

<!-- ... -->
<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扩展名?

我正在尝试实现一个servlet,以便小程序可以下载、更改和上载给定文件的外部应用程序。现在我正在尝试实现下载部分。我不打算在web应用程序本身中使用它。嗯。。。嗯,我基本上是在Web应用程序启动时通过applet访问一些后端文件系统。为了做到这一点,我想在webapp中使用一个servlet进行会话验证等,以处理一些参数并用一个文件进行响应。我没有使用nor访问servlet。这有意义吗?我应该用servlet吗?事实上我跟踪了你的一个tut。我不能这样使用路径:file?id=xyz。如果servlet映射为/file/*,我必须使用一个伪文件/dummy?id=xyz。您不需要这个伪文件。只要文件/?id=xyz就可以了。如果你不想要斜杠,你应该试试/file@developerwjk如果我尝试/file url模式,它会映射到file.xhtml,即使servlet映射比*.xhtml先声明。