Componente optiontransferselect do struts2 - Como pegar os valores selecionados

1 resposta
antoniopopete

Como pegar os valores selecionados na direita desse tipo de componente?
Queria usar ajax, para quando ele capturasse o onchange do optiontransferselect de cima, gerasse o de baixo com os filhos do selecionado na direita.

1 Resposta

antoniopopete

Abri o fonte gerado por esse componente e percebi que ele é um select multiple.
Então usei o seguinte script

function carregaConceitos(){
			
			var size = document.getElementById("dominiosSelecionados").options.length;
			var dominios = "";
			for(var i= 0; i < size;i++){
				dominios += document.getElementById("dominiosSelecionados").options[i].value+"$";			
			}
			UploadDocumentoAction.carregaConceitos(dominios.substring(1,dominios.length-1));		
		}

No caso vou usar ajax para gerar o outro combo optiontransferselect , mas com DWR ele não está funcionando e ainda não descobri o porque.
Vou fazer uns testes, mas caso alguém conheça DWR e já utilizou, o método que estou usando é esse:

@RemoteMethod
	public void carregaConceitos(String taxonomias) {
		List<TaxonomiaModel> dominios = getDominios(taxonomias);
		List<ConceitoModel> conceitos = FacadeFactory.getFacadeAjax().getConceitoService().getByTaxonomias(dominios);
		DwrUtil.getUtil().addOptions("conceitos", conceitos, "id","descricao");
	}

O que está errado?
O outro combo coloquei o nome do id que vou preencher como conceito:

<s:optiontransferselect leftTitle="Conceitos disponíveis" name="conceitosTaxonomiasSelecionadas"
		rightTitle="Conceitos selecionados" list="conceitosTaxonomiasSelecionadas" listKey="id"
		listValue="descricao" multiple="true" headerKey="headerKey" id="conceitos" doubleId="conceitosSelecionados"
		headerValue="--- Selecione ---" emptyOption="true" 
		doubleList="conceitosSelecionados" doubleListKey="id"
		doubleListValue="descricao" doubleName="conceitosSelecionados"
		doubleHeaderKey="doubleHeaderKey" doubleEmptyOption="true"
		doubleMultiple="true" /> <br>
Criado 28 de maio de 2008
Ultima resposta 28 de mai. de 2008
Respostas 1
Participantes 1