Dúvida com jstl

8 respostas
well

pessoal tenho o seguinte senario: criei um formulario com um com todos os estados brasileiros. para nao precisar criar uma tabela.

<select id="estado">
                    <option value="">Selecione o Estado</option>
                    <option value="1">ACRE</option>
                    <option value="2">ALAGOAS</option>
                    <option value="3">AMAPÁ</option>
                    <option value="4">AMAZONAS</option>

o value fica gravado na tabela municipio.

porem na hora de recuperar o dado do municipio vem com por ex… ESTADO : ${municipio.idEstado} que resulta em ESTADO: 1

tem como eu fazer um if talves com jstl

tipo:

if ${municipio.idEstado} = 1

value = “ACRE”

tem um exemplo? pois estou me lascando todo para fazer e nao sai nada…

vlw

8 Respostas

caputojf1

Já tentou isso?

<select id="estado">  
                       <option value="">Selecione o Estado</option>  
                       <option value="ACRE">ACRE</option>  
                       <option value="ALAGOAS">ALAGOAS</option>  
                       <option value="AMAPA">AMAPÁ</option>  
                       <option value="AMAZONAS">AMAZONAS</option>

assim quando vc recuperar o estado ele vai ser o value…

well

assim nao serve, pois no evendo do select ele faz uma consulta atravez do ID para selecionar o municipio…

romarcio

O que você precisa é criar uma lista na sua consulta e depois fazer um for para ler essa lista.

&lt;select id="estados" name="estados"&gt;
            &lt;option value=""&gt;...Select...&lt;/option&gt;
            &lt;c:forEach var="list" items="${service.getEstados}"&gt;
                &lt;option value="${list.idEstado}"&gt;${list.descricao}&lt;/option&gt;
            &lt;/c:forEach&gt;
        &lt;/select&gt;
well

romarcio vc nao entendeu… ja tenho essa lista porem Os estados nao vem do BD. é um select comum no html. so que quando eu salvo ele envia o value para o db municipios que no caso é o id… so que na hora de recuperar a informacao eu nao tenho o nome do estado no banco apenas o id…

gostatia de saber se tem como fazer com jstl um if para mostrar a uf correspondente ao id dela.

drsmachado

Trate isso na servlet que recebe o item selecionado.
Lógica não deve ser colocada na camada view.

Kura

Bom. Acredito que você tenha seus motivos para não querer colocar em uma tabela, mas ainda acho que seria a melhor opção.
Esse select é enorme e você, provavelmente, vai precisar usar esse combo em outros lugares.
De qualquer forma, sem ser no banco, você vai precisar tratar o valor, então, como nosso colega drsmachado disse, se precisar de alguma lógica, trate na camada correspondente.

drsmachado

Se estiver usando java > 1.4, crie um enum, aí, quando receber o valor “1”, busque no enum o correspondente (“Acre”).
Senão, crie uma classe de constantes ou uma simples tabela.
jstl é para deixar o código mais ágil e elegante, não para gambiarras ou métodos “lazy”…

romarcio

Tinha entendido errado mesmo.

Para fazer algo tipo IF e ELSE com JSTL, você pode fazer assim:

&lt;c:choose&gt;
   &lt;c:when test="${municipio.idEstado}==1}"&gt;ACRE&lt;/c:when&gt;
   &lt;c:when test="${municipio.idEstado}==2}"&gt;AMAPA&lt;/c:when&gt;
   &lt;c:otherwise&gt;Estado não existe&lt;/c:otherwise&gt;
&lt;/c:choose&gt;
Criado 12 de maio de 2011
Ultima resposta 12 de mai. de 2011
Respostas 8
Participantes 5