Hola a todos. Recientemente he tenido un problema en una pagina jsp, en la cual debo mostrar dos combobox. El problema radica en lo siguiente:
- El primer combobox, que obtiene los datos de proyectos, es este:
<html:select property="idProyecto">
<html:optionsCollection property="listaProyectos"
value="codigo"
label="descripcion"/>
</html:select>
- El segundo combobox, que obtiene los usuarios por proyecto, es este:
<html:select property="idUsuario">
<html:optionsCollection property="listaUsuarios"
value="codigo"
label="descripcion"/>
</html:select>
El formulario esta referenciado como
<html:form name="administrarFB"
action="/administrar/administrar.do"
type="proyecto.administrar.fb.AdministrarFB">
Como el action referencia directamente a mi archivo FB, es de este donde saco los listados. Desde AdministrarFB.java, llamo a las listas que llenan los combobox:
public void setListaProyectos(List listaProyectos){
this.listaProyectos = listaProyectos;}
public List getListaProyectos(){
ConsultarPM consultarPM = ConsultarPM.getInstance();
try{
List lista = consultarPM.getListaProyectos();
return lista;
}catch (ExceptionControlada e){
e.printStackTrace();}
return this.listaProyectos;
}
public void setListaUsuarios(List listaUsuarios){
this.listaUsuarios = listaUsuarios;}
public List getListaUsuarios(){
ConsultarPM consultarPM = ConsultarPM.getInstance();
try{
List lista = consultarPM.getListaUsuarios();
return lista;
}catch (ExceptionControlada e){
e.printStackTrace();
}
return this.listaUsuarios;
}
Estos a su vez, llaman a una función que extrae los listados de la BD, obteniendo para el listado de proyectos el código y descripción, y para el de usuarios, el código, descripción y id de proyecto.
Cuando seleccione un proyecto, solo debe listar los usuarios que pertenezcan a ese proyecto, y cuando no, debe listarlos a todos. He aquí mi problema. No se como hacer para que dinámicamente, se filtre el contenido de un select a través del valor obtenido de otro.
Espero que me puedan ayudar. Si es necesario especificar mas, por favor mencionarlo.
Desde ya, muchas gracias.