6

如果我有一个想要链接到的 JSF 页面,我不需要与该页面进行任何通信,并且不需要对我链接的页面执行任何验证,我是否应该始终使用 h:link ?

不使用 ah:commandLink(使用 immediate="true" 或 execute="@this")会丢失任何东西吗?

在这种情况下, h:link 和 h:commandLink 之间有什么区别吗?

4

1 回答 1

16

h:link触发一个完整的 GET 请求。只有 JSF 生命周期阶段 1(恢复视图)和 6(呈现响应)将被调用。没有转换,没有验证,没有行动。

因此immediate="true"并且execute="@this"不会起作用(它们根本不可用h:link)。

如果需要在服务器上处理输入数据,则h:link用于纯页面导航和(触发 POST 请求)。h:commandLink

附录:

根据 BalusC 的评论,如果目标页面包含f:viewParams,则不会跳过 GET 请求的生命周期阶段 2 到 5。

于 2012-06-26T12:01:08.730 回答