映射JSF .xhtml文件没有扩展名(Mapping JSF .xhtml files to no

2019-07-18 11:35发布

在JSF我可以映射Faces Servlet进行各种URL模式。 如以*.xhtml

但是什么我要的是在Faces Servlet的映射没有扩展名。 也就是说,如果我有一个页面customers.xhtml在我的Web根,我想请求此使用http://example.com/customers

我看了看问题, 如何配置JSF的URL映射没有文件扩展名? 而这个作品在一定程度上,但它要求我每一个文件我有单独映射(纠正我,如果我错了)。

我如何我所有的映射.xhtml一气呵成至Faces Servlet的文件,而不必单独映射呢?

Answer 1:

这是不可能的使用标准方法。 你基本上需要自制一个Servlet过滤器 ,其上映射/*和检查当前请求的URL是扩展名之一,如果是这样,那么执行RequestDispatcher#forward()与附加文件扩展名的URL调用(你知道,前方不修改当前请求的URL作为重定向会做)。 还需要一个自定义视图处理程序 ,以产生所期望的扩展名的网址JSF <h:form><h:link>

另外,您也可以使用PrettyFaces或OmniFaces' FacesViews ,这样你就不需要推倒重来。 在FacesViews展示页面的底部,你可以找到一些直接链接方便的源代码可以给你一些启示。



文章来源: Mapping JSF .xhtml files to no extension