默认情况下,根据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。
答案 0 :(得分:4)
FacesViews中有一个small mistake,具体为2.6.9,在2.7-SNAPSHOT中修复。在使用名称为/foo.bar/baz
的句点处理FacesViews到support个文件夹时,我意外地将修复程序的一部分提交到3.x而不是2.x.这就解释了为什么它在3.1中运行得很好,如"viewsdemo"展示所示。我的错误,这再次证明我是一个人而不是机器。
有几种方法可以解决这个问题:
web.xml
个上下文参数的"Minimal configuration"方法,而不是/WEB-INF/faces-views
中放置文件的“零配置”方法。答案 1 :(得分:0)
BalusC是对的,切换到2.6.8版解决了这个问题。信誉是BalusC一如既往,但他有太多的功劳,所以我觉得他不会介意我自己发布了一个答案,只是不想打扰他。
将servlet映射更改为* .xhtml也可以解决问题。尽管如此,Xtreme Biker:一个bug就是一个bug。即使我将映射更改为* .abc也应该没有问题。