dúvida combo <html:select> Struts

Caros amigos…

Tenho uma pagina JSP de alteração que é exibida quando clico num valor de uma lista, existe uma combo que é populada com os valores vindo do bd referentes aquele dado que selecionei. Como faço para esta combo aparecer com o estado deste cara selecionado setado?

quando faço <html:option value="${txtSubIndicador}"></html:option> ele traz a informação do cara porém duplicado e a combo não tem mais o 1º valor vazio… Caso alguém possa me ajudar…

minha JSP

<html:select property="idSubindicador" styleId="idSubindicador" style="width:600px" onchange="filtrarDivida()">
            <html:option value="${txtSubIndicador}"></html:option>
	 <logic:present name="colIdSubindicadoresPaf">
                     <html:options collection="colIdSubindicadoresPaf" labelProperty="txtSubindicador" property="idSubindicador" />
	 </logic:present>
</html:select>

Collection que popula minha combo sem problemas…

String idIndicador = Long.toString(configuracaoPafDTO.getSubindicadorRelatorio().getIndicadorRelatorio().getIdIndicadorRelatorio());
            String idConfigPafDetalhe = Long.toString(configuracaoPafDTO.getConfiguracaoIndicadorPaf().getIdConfiguracaoIndicadorPaf());
            Collection<SubindicadorRelatorioDTO> listaSubIndicadorPorIndicador = bandaPafBO.recuperaSubindicadoresConfigurados(idConfigPafDetalhe, idIndicador);
            viewInfo.setRequestAttribute("colIdSubindicadoresPaf", listaSubIndicadorPorIndicador);

Obrigado!

Alguém???

Bom dia Galera…

Pô como ninguém respondeu eu quebrei a cabeça e com ajuda de um brother aqui finalmente encontrei uma solução…
Simplesmente passei o ID do cara no Value do html:select e ele seta pra mim o valor na combo que é referente aquele ID.

Segue abaixo o código!!

<html:select property="idIndicadorPaf" value="${idIndicador}" styleId="idIndicadorPaf" style="width:600px" onblur="" onchange="preencherSubindicador()">
<html:option value=""></html:option>
	<logic:present name="colIdIndicadorPaf" >
                      <html:options collection="colIdIndicadorPaf" labelProperty="txtIndicadorRelatorio" property="idIndicadorRelatorio" />
	</logic:present>
</html:select>

kelvis,

Estou tendo o mesmo problema que você, porém acho que estou fazendo alguma besteira no js…

Muito legal você compartilhar a resolução do seu problema, mas não ficou muito claro sem a função js, se vc puder compartilhar, eu agradeceria… :slight_smile:

Realmente faltava acertar detalhes no js, segue como ficou:

<script language="javascript">

    function selectCombo(id){
        document.repositorioForm.repositorio_atual.options[id].selected = true;
    }

</script>

[...]


  <html:select property="projeto" indexed="to" onchange="selectCombo(this.options.selectedIndex);">

   <html:select property="repositorio_atual" >

Sendo que os dois combos possuem os id’s iguais, portanto pegando o valor do pai selecionado no onchange, eu selecionei o mesmo valor no combo filho. :smiley:

Massa cara… que bom que resolveu… Eu ia postar o JS agora… rsrs! Mas valeus!!

Qualquer coisa tamo ai!

Abraço!

Valew Kelvis, mas só um ressalve… não sou homem, sou mulher…hahahaha :lol: … mas não se preocupe, apesar do nick ser feminino, você não foi o primeiro a se enganar…rs

Rs… Desculpa!! Não estou muito acostumado á ver mulheres mandando vê nas linhas de código…
á proposito meu JS só pra constar

//Essa função chama outra(recuperaSubindicador)
function preencherSubindicador() {
		/* Combo Indicador */
		var idIndicador = document.forms[0].idIndicadorPaf.value;
		/* Busca aux Indicador paf */
		var idConfiguracaoIndicadorPaf = document.forms[0].idConfiguracaoIndicadorPaf.value;
		/* Recuperar subindicadores */
		recuperarSubindicadores(idIndicador, idConfiguracaoIndicadorPaf);
	}
function recuperarSubindicadores(idIndicador, idConfiguracaoIndicadorPaf) {
		var erro = false;
		document.body.style.cursor = 'wait';
		var xotree = new XML.ObjTree();
		var url = "../BandaPaf/AjaxSelecionarIndicador.do?idIndicadorPaf="
		   + idIndicador +"&idConfiguracaoIndicadorPaf=" + idConfiguracaoIndicadorPaf;
		   //alert("function recuperaSubindicadores var url = " + url);
	       new Ajax.Request(url, {
				asynchronous: false,
    			method: 'get',
    			encoding: 'ISO-8859-1',
    			contentType: 'text/plain',
    			requestHeaders: 'text/plain',
    			evalScripts: true,
				onSuccess: function(transport) {
                    var xml = xotree.parseXML(transport.responseText);
					if (xml != null) {
						if (xml.retorno.codErro == '0') {
							tratarRetornoSubindicadores(xml.retorno);
						} else {
							erro = true;
						}
					} else {
						erro = true;
					}
			        document.body.style.cursor = 'default';
				},
                   onException: function (requester, e) {
                    //alert(e);
					document.body.style.cursor = 'default';
					erro = true;
                   }
	});
	return erro;
  }

Esses JS são gigantes porque a aplicação é muito complexa e utiliza Ajax!
add ai: kelvis.lima@hotmail.com