0

我遇到了 Pretty Faces URL 映射的问题。

我有一个具有以下映射的托管 bean:

@ManagedBean
@RequestScoped
@URLMapping(id = "search", pattern = "/search/", viewId = "/search/search.xhtml")

当我去http://ip/search/?keywords=word时它工作正常。

但是,当我尝试更改映射模式时,出现错误。

@ManagedBean
@RequestScoped
@URLMapping(id = "search", pattern = "/search", viewId = "/search/search.xhtml")

我希望http://ip/search?keywords=word给出与上面的链接相同的响应,但不幸的是我收到 404 HTTP 错误。

search.xhtml 位于部署在 JBoss 6.1.0 final 上的 Web 项目的 WebContent/search/ 文件夹中。

有趣的是,当我使用 JBoss 5.1.0 和 Pretty Faces 3.2.0 和 JSF 1.2 时,映射工作正常(当然,在这种情况下,所有映射都是通过 XML 配置完成的)。

我将不胜感激任何答案,谢谢!

4

2 回答 2

0

存储.xhtml文件的文件夹名称与模式值之间存在冲突,因此如果文件夹名称与模式值相同,则映射不起作用。

就我而言,我不得不将文件夹名称搜索更改为search_pages并且映射开始正常工作 - 现在可以访问http://ip:port/search?keywords=keyword并获得适当的结果。

我不知道这种行为是否适用于 Pretty Filter,但对我来说,它看起来有点奇怪。

于 2012-01-11T14:24:06.643 回答
0

您是否尝试过 PrettyFaces 3.3.2 版?那里修复了一些错误。另外,您是否尝试过完全刷新页面和浏览器缓存?有时重定向会被浏览器缓存。

另外,如果情况变得更糟,我建议调试 com.ocpsoft.pretty.faces.PrettyFilter 看看里面发生了什么。

还要确保您没有任何其他会影响映射的 URL 重写配置,例如尾部斜杠附加或类似的东西。

于 2011-11-25T19:33:37.197 回答