Combo dinâmico (combo dependete) + struts 2 [RESOLVIDO]

Alguém tem um exemplo de como eu poderia fazer isso no struts 2, sem ser usando DWR?

Vou colocar um exemplo que eu fiz, espero que ajude

  1. Crie uma action com o seguinte conteudo:
   private int idCertificacao; //vai conter o id selecionado no combo master 
   private int idCompetencia;  //vai conter o id selecionado no combo slave
   private ArrayList<Certificacao> certificacoes;      //array para o combo master 
   private ArrayList<Competencia> competencias;  //array para o combo slave

   public ArrayList<Competencia> getCompetencias() {  
         OgnlValueStack stack = (OgnlValueStack) 
	    ServletActionContext.getValueStack(ServletActionContext.getRequest());
        Object tipoCert = stack.findValue("top");
        if(tipoCert!=null && tipoCert instanceof Certificacao) {
                     //objeto selecionado no combo master
	     Certificacao cert = (Certificacao)tipoCert;
        	     competencias = //aqui voce pega o array de competencia com base na certificacao cert
        }
        //competencias = competenciaDao.listaTodasCompetencia(cpf,idCertificacao);
        return competencias;
   }
	
   public ArrayList<Certificacao> getCertificacoes() {
       //apenas as certificacoes do gestor
        String cpf = request.getRemoteUser();
       certificacoes = //pega o array de certificacoes do banco de dados
       return certificacoes;
   }

nao se esqueça dos get e set para todos os atributos

  1. Na pagina jsp coloque a seguinte tag
		<tr>
			<td>Certifica&ccedil;&atilde;o</td>
			<td rowspan="2"><s:doubleselect 
					label="Certificacao"
					name="idCertificacao" 
					list="certificacoes" 
					listKey="id"
					listValue="nome" 
					value="'id'" 
					doubleValue="'id'"
			                                doubleList="competencias" 
					doubleListKey="id" 
			                                doubleListValue="nome"
					doubleName="idCompetencia" 
					theme="simple" /></td>
		</tr>
		<tr>
			<td>Compet&ecirc;ncia</td>
		</tr>

Tente adaptar conforme sua necessidade

Por que o value é assim? value="'id'" ele não pode ser propriedade de um bean declarado na página?
Onde eu coloco o método que carrega a outra coleção?
Porque eu só carrego o segundo dependendo do valor do primeiro…

Funcionou perfeitamente!!Mas gostaria de saber se tenho que declarar novas propriedades ou posso setar em um bean, como faço faço no JSF?

esse “id” eh do objeto Certificacao ou Competencia
Geralmente no combo eu uso id para o valor retornado pelo combo
Certificacao ou Competencia tambem tem um atributo “nome” que eu uso para exibir a lista de elementos
do combo.

Nao entendi o que voce disse sobre novas propriedades

Por exemplo tive que declarar na minha Action dois atributos idInstituicao e idcurso.
Não poderia fazer

instituicaoModel.id instituicaoModel.cursoModel.id
???