【发布时间】:2012-02-07 04:33:42
【问题描述】:
我有 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()的哪个部分输入代码来加载第二个菜单?
【问题讨论】:
标签: jsf