我有一个带有单选按钮的现有表单。我想要的是,每当用户选择选择任何一个值时,都应在同一表单上显示输入文本框或超链接。
我认为我在使用ajax进行此操作的正确轨道上。但是,我想出了以下代码,但是在选择任何单选值时并没有更新表单:
注:我只显示了只选择无线电中的一个值以保持干净的情况。
<tr>
<td><ice:outputLabel value="Agenda Type" styleClass="mandatory"/></td>
<td>
<h:selectOneRadio id="agenda_type" action="#{eventManagementController.radioVal}" required="true" label="Action">
<f:selectItem itemValue="standard" itemLabel="Standard"/>
<f:selectItem itemValue="normal" itemLabel="Normal"/>
<f:ajax process="console" event="click" update="display" />
</h:selectOneRadio>
</td>
<td>
<ice:message for="agenda_type" errorClass="error"/>
</td>
</tr>
<tr>
<td>
<ice:outputLabel value="Standard Agenda" rendered="#{eventManagementController.radioVal eq 'standard'}"/>
</td>
<td>
<h:commandLink id="display" immediate="true" rendered="#{eventManagementController.radioVal eq 'standard'}"
action="#{eventManagementController.goToAgendaDetailsPage}" value="Enter Details">
</h:commandLink>
<br/>
</td>
</tr>
已经定义了将radioVal的值存储为的控制器:
public String getRadioVal() {
return radioVal;
}
public void setRadioVal(String radioVal) {
this.radioVal = radioVal;
}
尝试像这样在f:ajax中添加渲染:
process="console" event="click" update="display" render="display"
这将强制在客户端渲染命令链接,希望它会有所帮助。