JSF在单选值选择上动态更新表单

问题描述 投票:0回答:1

我有一个带有单选按钮的现有表单。我想要的是,每当用户选择选择任何一个值时,都应在同一表单上显示输入文本框或超链接。

我认为我在使用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;
}
jsf model-view-controller controller radiobuttonlist
1个回答
0
投票

尝试像这样在f:ajax中添加渲染:

process="console" event="click" update="display" render="display"

这将强制在客户端渲染命令链接,希望它会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.