到目前为止,我在JSF中的大多数问题似乎都可以归结为这一点-从(静态) 客户端到 (动态) 服务器端的通信 ,反之亦然; 例如,用于重新渲染组件。
一个示例:启用/禁用取决于selectoneradio
的选择的按钮( commandButton
)。
什么是沟通的选择正确的方法selectoneradio
(客户端到服务器),然后ajaxingly更新commandButton
(服务器到客户端)?
通过使用<f:ajax>
。
这是一个在选择第二项时启用按钮的示例。
<h:selectOneRadio value="#{bean.selectedItem}">
<f:selectItem itemValue="1" itemLabel="First item" />
<f:selectItem itemValue="2" itemLabel="Second item" />
<f:ajax render="button" />
</h:selectOneRadio>
<h:commandButton id="button" disabled="#{bean.selectedItem != 2}" />
确保#{bean}
是@ViewScoped
以便在回发时记住该状态。 否则,当您按下提交按钮时,它将恢复为默认值。
也就是说,我强烈建议您阅读一本不错的JSF书。 上面通常已在第一章中介绍过。