我试图隐藏/显示基于UI事件的JSF面板。 更具体地说,我有很多单选按钮, 每个单选按钮都应存在于自己的面板中。 我需要根据单选按钮单击使隐藏面板可见。 我怎么能这样做?
答案 0 :(得分:3)
不应使用css属性visibility
,而应该考虑渲染单选按钮 - 或者不是 - 取决于第一个单选按钮的值。
请记住,你不能update
一个尚未渲染的组件,只能是它的父组件:
<h:form>
<h:panelGroup id ="grp1">
<h:selectOneRadio value="#{testController.radio1}">
<f:selectItem itemValue="show" itemLabel="Show next Radio" />
<f:selectItem itemValue="hide" itemLabel="Hide next Radio" />
<f:ajax render="grp2"></f:ajax>
</h:selectOneRadio>
</h:panelGroup>
<h:panelGroup id ="grp2">
<h:selectOneRadio value="#{testController.radio2}" rendered="#{testController.radio1 eq 'show'}">
<f:selectItem itemValue="show" itemLabel="Show next Radio" />
<f:selectItem itemValue="hide" itemLabel="Hide next Radio" />
</h:selectOneRadio>
</h:panelGroup>
</h:form>
用烤豆
@Named
@ViewScoped
public class TestController implements Serializable {
private String radio1;
private String radio2;
//+getter and setter
}