HtmlSelectOneRadio дважды щелкните для запуска прослушивателя Valuechangeevent - PullRequest
1 голос
/ 22 марта 2012

Я пытаюсь динамически создать форму, в которой есть переключатель с тремя вариантами выбора.Варианты выбора отображаются с помощью переключателя, но проблема в том, что ValueChangeEvent запускается только при двойном нажатии кнопки.

Мой XHTML:

 <h:column>

<h:selectOneRadio id="UserTypeOption" value="#{userRegistrationBean.businessInfo.userType}"
valueChangeListener="#{userRegistrationBean.generateDynamicFormFields}">
<a4j:ajax event="valueChange" render="supplementQuestionForm1"/>
<f:selectItems id="USERTYPE" value="#{userRegistrationBean.userTypeList}"/>
</h:selectOneRadio>
</h:column>

Фрагмент кода Java:

private static org.ajax4jsf.component.behavior.AjaxBehavior    
ajaxBehavior=(org.ajax4jsf.component.behavior.AjaxBehavior
) FacesContext.getCurrentInstance().getApplication().createBehavior(
org.ajax4jsf.component.behavior.AjaxBehavior.BEHAVIOR_ID);
static
{ Collection<String> renders = new ArrayList<String>();
ajaxBehavior.addAjaxBehaviorListener(userRegistrationBean.getValueChangeListener());
renders.add("supplementQuestionForm1");
ajaxBehavior.setRender(renders);}

HtmlSelectOneRadio radio= (HtmlSelectOneRadio) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlSelectOneRadio.COMPONENT_TYPE);
ArrayList<SelectItem> radioBtnOptionsList = new ArrayList<SelectItem>();
radioBtnOptionsList.add(new SelectItem("TEST1","TEST1));
radioBtnOptionsList.add(new SelectItem("TEST2","TEST2));
radioBtnOptionsList.add(new SelectItem("TEST3","TEST3));

UISelectItems radioBtnOptions = (UISelectItems) FacesContext.getCurrentInstance().getApplication().createComponent(UISelectItems.COMPONENT_TYPE);
radioBtnOptions.setValue(radioBtnOptionsList);
radio.addClientBehavior("valueChange", ajaxBehavior);
radio.getChildren().add(radioBtnOptions);

Просьба пролить свет на то, почему событие valurchange вызывается только после второго щелчка.Спасибо, GB

Я использую RF 4.2, JSF 2 работает на Websphere 7 в RAD 8.

...