В калитке есть некоторые компоненты, которые, похоже, связаны с формой, но я не могу заставить их фактически отправить форму.
Например, я могу создать «ссылку для отправки» или кнопку, и эти компоненты отправят:
return new SubmitLink(id, form) {
@Override
public void onSubmit() {
this.setResponsePage(pageClass);
}
};
Это работает выше.
Я хочу иметь возможность выполнить отправку по выбору радио, при изменении. Э.Г.
new OnChangeHandler() {
@Override
public void onChange(final Object sel) {
// On submission, submit back to form
setResponsePage(Page.class);
}
// MY CONTAINER IS NOT A FORM BUT A CHILD OF A FORM (E.g. FORM -> PANEL -> RADIOCHOICE
public RadioChoice addRadioGroup(final WebMarkupContainer container, final Object modelObject,
final String groupName, final String propFieldName, final String [] optionsArr, final OnChangeHandler handler) {
final RadioChoice radioGroupYesNo = new RadioChoice(groupName, new PropertyModel(modelObject, propFieldName), Arrays.asList(optionsArr)) {
@Override
public boolean wantOnSelectionChangedNotifications() {
return (handler != null); /* When the handler is not null, enable on change */
}
@Override
public void onSelectionChanged(Object newSel) {
if (handler != null) {
handler.onChange(newSel);
} else {
super.onSelectionChanged(newSel);
}
}
};
container.add(radioGroupYesNo);
return radioGroupYesNo;
}
С кодом, показанным выше, страница обновляется, но я хочу отправить форму и обновить страницу.
Не понимаю, где можно связать форму с RadioChoice?