如何在没有文件扩展名的情况下配置JSF url映射?
大多数教程提出了类似于以下web.xml的默认JSF配置:
javax.faces.DEFAULT_SUFFIX .xhtml Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/* *.jsf
使用此配置,如果相应的URL以文件扩展名.jsf(例如http://localhost/welcome.jsf )结尾,则只有Faces Servlet才能找到我的webapp中相应的* .xhtml文件。 是否可以配置web.xml,以便使用相同的* .xhtml文件将不以.jsf结尾的URL处理为JSF页面?
换句话说,我想拥有不依赖于服务器端实现的URL。
您可以使用filter隐藏此扩展名并使您的URL SEO友好,其中一个Filter的实现是漂亮的filter 。
例如:如果您需要http://host:port/yourapp/login
来解析您的login.xhtml
那么在漂亮的filter中配置以下方式
/login /legacy/user/login.jsf
看看两分钟的video教程
你可以在WEB-INF文件夹中创建像这样创建faces-config.xml文件的url映射
/jsf/demoapp demoapp /demoapp.xhtml