这种情况是正常的。首先要清楚@BeforeRender是在Invoke Application和Response Render之间调用的。由超连接跳转过去,那么该请求只完成JSF生命周期的Restore View和Response Render阶段,所以并没有执行@BeforeRender注释所打上的方法,因此该方法的参数值为false。而通过页面跳转,会触发JSF生命周期的六个阶段,因此会调用到@BeforeRender注释所打上的方法,则方法的参数值为true。
总上所述,你说的这情况是正常的。