【发布时间】:2012-12-13 16:22:32
【问题描述】:
当我遇到p:selectOneMenu 中使用的以下条件时,我正在从OmniFaces Showcase app 中检查this template 的代码:
disabled="#{facesContext.postback and not facesContext.renderResponse}"
从使用该应用来看,selectOneMenu 似乎从未被禁用,那么这段代码究竟做了什么?
我知道,只要页面是由 JSF 组件(commandButton/commandLink 等)生成的 POST 请求产生的,facesContext.postback 就是 true,但是 @ 的通常预期状态是什么987654327@ 在视图中评估时?
更新: 哎呀,刚才我看到了评论:它们在渲染响应之外的其他阶段被禁用,因为否则它们会抱怨即使没有模型值也无法设置表格。
所以,我猜这个条件在 Faces 生命周期中被评估了几次,并且组件被禁用直到达到最后一个状态(renderResponse),当facesContext.renderResponse 评估为true 时,整个表达式评估为@ 987654330@ 然后启用该组件。对吗?
【问题讨论】: