小编Fre*_*nco的帖子

如何在更改第一个selectOneMenu时加载第二个selectOneMenu?

我有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>
Run Code Online (Sandbox Code Playgroud)

它就像所选国家的国家和城市.第一个菜单加载如下:

@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; …
Run Code Online (Sandbox Code Playgroud)

jsf

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

jsf ×1