Omnifaces无扩展名网址和h:链接

时间:2018-04-22 03:46:22

标签: jsf-2.2 omnifaces

默认情况下,根据http://showcase.omnifaces.org/facesviews/ExtensionlessURLs,ViewHandler.getActionURL(FacesContext,String)生成的所有网址都由其他人使用

<h:form>, <h:link>, <h:button> 

和所有扩展标签也将是无扩展的。

我尝试将Facelets源文件放入/ WEB-INF / faces-views目录。

我在浏览器中输入/ context / entries,然后我在/WEB-INF/faces-views/entries.xhtml中找到了该页面。但是当我在我的facelet页面中使用它时:

<h:link outcome="entries">Entries</h:link>

产生的网址是/context/WEB-INF/faces-views/entries.xhtml,这不是理想的结果。出了什么问题?

我正在使用Mojara 2.2.12和Omnifaces 2.6.9,我的面部servlet映射是* .jsf。

2 个答案:

答案 0 :(得分:4)

FacesViews中有一个small mistake,具体为2.6.9,在2.7-SNAPSHOT中修复。在使用名称为/foo.bar/baz的句点处理FacesViews到support个文件夹时,我意外地将修复程序的一部分提交到3.x而不是2.x.这就解释了为什么它在3.1中运行得很好,如"viewsdemo"展示所示。我的错误,这再次证明我是一个人而不是机器。

有几种方法可以解决这个问题:

  1. 降级至2.6.8。
  2. 或者,迁移到3.1。
  3. 或者,保留2.6.9并使用单web.xml个上下文参数的"Minimal configuration"方法,而不是/WEB-INF/faces-views中放置文件的“零配置”方法。

答案 1 :(得分:0)

BalusC是对的,切换到2.6.8版解决了这个问题。信誉是BalusC一如既往,但他有太多的功劳,所以我觉得他不会介意我自己发布了一个答案,只是不想打扰他。

将servlet映射更改为* .xhtml也可以解决问题。尽管如此,Xtreme Biker:一个bug就是一个bug。即使我将映射更改为* .abc也应该没有问题。