我有两个场景
我有两个动作,它们在 bean 中具有逻辑,例如
我的按钮
<h:commandButton value="Submit" action="#{bean.test}" />
<h:commandButton value="Submit" action="#{bean.testOne}" />
这是两个 commnadButtons 和 bean 中的逻辑
public void test() {
log.info("I m in test");
}
public void testOne() {
log.info("I m in testOne");
try {
FacesContext.getCurrentInstance()
.addMessage("", new FacesMessage("Record Saved successfully."));
FacesContext
.getCurrentInstance()
.getExternalContext()
.redirect(
FacesContext.getCurrentInstance()
.getExternalContext().getRequestContextPath()
+ "/cycle/page");
} catch (IOException e) {
log.error(e.getMessage());
}
}
当我要单击第一个按钮(测试操作)时,jsf 生命周期进入每个阶段,例如
恢复视图
应用请求值
流程验证
更新模型
调用应用程序
渲染响应
但是当我单击 testOne 按钮时,jsf 生命周期跳过渲染调用应用程序后的响应,如
恢复视图
应用请求值
流程验证
更新模型
调用应用程序
恢复视图
呈现响应
用简单的语言当我通过 facesContext 导航页面时,jsf 会跳过该阶段。
但是为什么会这样呢?我没有得到问题。