Как загрузить второе selectOneMenu при изменении первого selectOneMenu? [Дубликат]
На этот вопрос уже есть ответ:
Как загрузить и отобразить зависимый h: selectOneMenu при изменении h: selectOneMenu 1 ответУ меня есть 2<h:selectOneMenu>
компоненты, и один из них зависит от выбора другого. Когда вы выбираете одно значение первого компонента меню, второе изменяется с событиемonchange="submit()"
а такжеvalueChangeListener="#{Usuario.cmbDatos_action}"
первого меню:
<h:selectOneMenu id="cmbCombo" binding="#{Usuario.cmbDatos}" value="#{Usuario.id}"
onchange="submit()" valueChangeListener="#{Usuario.cmbDatos_action}">
<f:selectItems value="#{beanCombos.datos}"></f:selectItems>
</h:selectOneMenu>
Это как страны и города выбранной страны. Первое меню загружается следующим образом:
@ManagedBean
@RequestScoped
public class BeanCombos {
private List<SelectItem> Datos;
public BeanCombos() {
try {
clsConexion objConexion = new clsConexion();
String strSQL = "SELECT * FROM Usuarios";
objConexion.ResultSetSQL = objConexion.EjecutarConsulta(strSQL);
Datos = new ArrayList<SelectItem>();
while (objConexion.ResultSetSQL.next()) {
Usuario objUsuario = new Usuario();
objUsuario.setId(String.valueOf(objConexion.ResultSetSQL.getInt("Codigo")));
objUsuario.setNombre(objConexion.ResultSetSQL.getString("Nombres").toUpperCase());
Datos.add(new SelectItem(objUsuario.getId(), objUsuario.getNombre()));
}
} catch(Exception ex) {
String strError = ex.getMessage().toString();
}
}
public List<SelectItem> getDatos() {
return Datos;
}
}
Но когда я выбираю одно значение в первом меню, я не знаю, как загрузить следующее меню. Я попробовал это следующим образом:
public String cmbDatos_action() {
try {
int intValor = Integer.parseInt(cmbDatos.getValue().toString());
} catch(Exception ex) {
}
return null;
}
В какой части методаcmbDatos_action()
можно поставить код для загрузки второго меню?