我尝试在JSF 2 Web应用程序上实现自定义PDF文件servlet(/fileprovider/name?param1=value¶m2=otherValue
),但在web.xml
上声明时,应用程序始终添加.xhtml
扩展名对每一个要求。我相信由于DEFAULT_SUFFIX
context-param。
<!-- ... -->
<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
扩展名?