将JSF .xhtml文件映射到无扩展名

dex*_*ers 9 java jsf facelets url-rewriting jsf-2

在JSF中,我可以将Faces Servlet映射到各种URL模式.例如*.xhtml.

但我想要的是将Faces Servlet映射到扩展名.这意味着,如果customers.xhtml我的网页根目录中有一个页面,我想请求使用http://example.com/customers.

我查看了如何在没有文件扩展名的情况下配置JSF url映射的问题这在某种程度上有效,但它需要我单独映射我拥有的每个文件(如果我错了,请纠正我).

如何将所有.xhtml文件一次映射到Faces Servlet而无需单独映射?

Bal*_*usC 10

使用标准手段是不可能的.您基本上需要自制一个映射的servlet过滤器,/*并检查当前请求URL是否是无扩展名的,如果是,则RequestDispatcher#forward()对附加了文件扩展名的URL 执行调用(您知道,转发不会修改当前请求URL作为重定向可以).你还需要一个定制视图处理程序来产生所需的扩展名的网址,JSF <h:form>,<h:link>等等.

或者,您可以使用PrettyFaces或OmniFaces的FacesViews,这样您就不需要重新发明轮子.在FacesViews展示页面的底部,您可以找到一些直接链接到源代码的简单链接,这可能会给您一些灵感.