【发布时间】:2019-11-21 16:44:43
【问题描述】:
我有一个带有单选按钮的现有表单。我想要的是,每当用户选择选择任何一个值时,输入文本框或超链接都应该显示在同一个表单上。
我认为我在使用 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;
}
【问题讨论】:
-
你的 xhtml 中哪个标签有 id="agendafileupload" 哪个标签有 id="console"?
-
@Raztyck 编辑了问题。
-
当您尝试处理 id 为“console”的组件时,JSF 将从该组件发送数据。你是故意的吗?如果不是,那么您应该将“控制台”更改为“@this”以将数据从 selectOneRadio 发送到 bean。这可能会对您有所帮助,但如果没有,请说明:您使用的是什么版本的 jsf?
标签: jsf selectoneradio