如果我有一个要链接到的JSF页面,我不需要在该页面上传达任何信息,并且不需要在要链接的页面上执行任何验证,那么是否应该始终使用h:link ?
我是否通过不使用h:commandLink(具有即时=“true”或execute =“@ this”)而丢失了任何东西?
在这种情况下,h:link和h:commandLink有什么区别吗?
最佳答案
h:link
将触发完整的GET请求。仅JSF生命周期阶段1(恢复 View )和阶段6(渲染响应)将被调用。没有转换,没有验证,没有 Action 。
因此,immediate="true"
和execute="@this"
将不起作用(它们根本不适用于h:link
)。
如果需要在服务器上处理输入数据,请使用h:link
进行纯页到页面的导航,并使用h:commandLink
(触发POST请求)。
附录:
根据BalusC的注释生命周期,如果目标页面包含f:viewParam
,则不会跳过GET请求的第2到第5阶段。