小编典典

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

java

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

但是我想要的是将Faces Servlet映射为
扩展名。意思是,如果我customers.xhtml在Web根目录中有一个页面,我想使用来请求此页面http://example.com/customers

我看了一个问题,如何配置不带文件扩展名的JSF
URL映射?
这在某种程度上是可行的,但它要求我分别映射我拥有的每个文件(如果我输入错了,请更正我)。

如何将所有.xhtml文件一次映射到Faces Servlet,而不必分别映射它们?


阅读 181

收藏
2020-11-16

共1个答案

小编典典

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

另外,您可以使用PrettyFaces或OmniFaces的FacesViews,这样就不必重新发明轮子了。在FacesViews展示页面的底部,您可以找到一些直接链接到源代码的简单链接,这可能会给您一些启发。

2020-11-16