如果我有一个我想链接到的JSF页面,我不需要与该页面进行任何通信,也不需要在我链接的页面上执行任何验证,我是否应该总是使用H:链接?
不使用h:commandLink(使用immediate =“true”或execute =“@ this”)会丢失任何内容吗?
在这种情况下,h:link和h:commandLink之间有什么区别吗?
答案 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。