应该何时使用h:link而不是h:commandLink?

时间:2012-06-26 11:36:33

标签: jsf-2

如果我有一个我想链接到的JSF页面,我不需要与该页面进行任何通信,也不需要在我链接的页面上执行任何验证,我是否应该总是使用H:链接?

不使用h:commandLink(使用immediate =“true”或execute =“@ this”)会丢失任何内容吗?

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

1 个答案:

答案 0 :(得分:15)

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

因此immediate="true"execute="@this"无法使用(根本不适用于h:link。)

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

附录:

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