无法使用Pretty Faces 3.3.2,JSF 2.0,JBoss 6.1.0 final进行URL映射

时间:2011-11-11 09:48:17

标签: jsf-2 mapping jboss6.x prettyfaces

我遇到了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配置完成的)。

我很感激任何答案,谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

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