Вы действительно можете использовать Richfaces для добавления a4j: вспомогательный компонент :
<h:selectOneRadio value="#{myBean.myValue}" ...>
...
<a4j:support event="onclick" action="#{myBean.doSomething}"/>
</h:selectOneRadio>
В вашем коде Java:
public String doSomething() {
// Your code goes here...
...
// Now, we move to the new page.
return "some-outcome";
}
Однако, если вы не можете (или не хотите) добавить новую библиотеку, вы можете сделать это по-старому:
<h:selectOneRadio value="#{myBean.myValue}" ... onclick="this.form.submit();" valueChangeListener="#{myBean.doSomething}">
...
</h:selectOneRadio>
Этот код отправит форму, в которой находится переключатель, когда будет обнаружено событие Javascript onclick. На стороне сервера будет выполнено действие doSomething.
В этом методе вы можете создать правило навигации, которое будет выполняться:
public void doSomething(ValueChangeEvent evt) {
// Your code goes here...
...
// Now, we move to another page...
FacesContext context = FacesContext.getCurrentInstance();
NavigationHandler navigation = context.getApplication().getNavigationHandler();
navigation.handleNavigation(context, "", "some-outcome");
}
где some-output - это результат, определенный в правиле навигации в вашем файле names-config.xml.