如果我有一个要链接到的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阶段。

09-26 05:09