Mostrar seleção de uma comboBox conforme o valor setado em value [RESOLVIDO]

Olá pessoal.

Tô com uma dúvida!

Para inserir o estado civil:

                <tr>
                    <th>&nbsp;Est. Civil:&nbsp;</th><td><select name="estado_civil">
                            <option value="0"></option>
                            <option value="1">Solteiro(a)</option>
                            <option value="2">Casado(a)</option>
                            <option value="3">Divorciado(a)</option>
                            <option value="4">Viúvo(a)</option>
                        </select></td><td></td>
                </tr>

Para alterar, é possível, se em value entrar um valor 1 e a combo box já vir
selecionado Solteiro(a). Se entrar 3 em value vir selecionado Divorciado(a) e assim por diante?

Sei fazer isso em Swing, mas em WEB não estou conseguindo!

Deixa eu ver se entendi direito, você quer exibir as opções do select com uma determinada opção selecionada certo?

Se você estiver usando apenas Servlets e JSP, com html puro (sem componentes de frameworks), você pode utilizar o atributo selected da tag .
Ex:

<select id="teste">
    <option value="1">Opcao1</option>
    <option value="2" selected>Opcao2</option>
</select>

Ou então você pode fazer com javascript:

document.getElementById('teste')[1].selected = "selected"; // vai selecionar a Opcao2

Pra fazer isso de maneira dinâmica, dá uma olhada nesse post que mostra duas maneiras.

cara, só pra dar uma ajudada coloca um name nos values

<select id="teste"> <option value="1" name="estadoCivil">solteiro</option> <option value="2" name="estadoCivil">casado</option> </select>

Mas onde entra o request.getParameter(“estado_civil”) ?

O código abaixo manda para o “jsp” através de link.

<%
        try{
            out.print("<table border='1'>");
            out.print("<tr>");
            out.print("<th>&nbsp;Código&nbsp;</th><th>&nbsp;Nome&nbsp;</th><th>&nbsp;CPF&nbsp;</th><th>&nbsp;Editar&nbsp;</th><th>&nbsp;Excluir&nbsp;</th>");
            AlunoDAO ald = new AlunoDAO();
            String filtro = request.getParameter("pesquisa_id");
            ArrayList<Aluno> alunos = ald.listar_por_id(filtro);
            for (int num = 0; num < alunos.size(); num++){
                out.print("<tr>");
                out.print("<td>&nbsp;"+alunos.get(num).getId()+"&nbsp;</td>");
                out.print("<td>&nbsp;"+alunos.get(num).getNome()+"&nbsp;</td>");
                out.print("<td>&nbsp;"+alunos.get(num).getCpf()+"&nbsp;</td>");
                out.print("<td><a href='AlterarAlunos.jsp?id="+alunos.get(num).getId()+"&nome="+alunos.get(num).getNome()+"&sexo="+alunos.get(num).getSexo()+"&estado_civil="+alunos.get(num).getEstado_civil()+"&cpf="+alunos.get(num).getCpf()+"&descricao="+alunos.get(num).getDescricao()+"'><img alt='Alterar'  src='images/alterar.png'></a></a></td>");
                out.print("<td><a href='ApagarAluno.jsp?cod="+alunos.get(num).getId()+"'><img alt='Apagar'  src='images/apagar.png'></a></td>");
                out.print("</tr>");
            }
        }catch(Exception erro){
            throw new RuntimeException(erro);
        }
        %>

Então, se do servlet foi enviado para estado civil um valor 3, a página tem que vir com “Divorciado(a)” selecionado, se enviado 1, então Solteiro(a), etc.

            <form action="ServletAlterarAlunos.jsp" method="get">
            <table border="1">
                <tr>
                    <th>&nbsp;ID:&nbsp;</th><td><input type="text" name="id" value="<%=request.getParameter("id")%>" size="50" readonly  /></td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;Nome:&nbsp;</th><td><input type="text" name="nome" value="<%=request.getParameter("nome")%>" size="50"/></td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;Sexo:&nbsp;</th><td><input type="radio" name="sexo" value="0"/>Masculino
                                                  <input type="radio" name="sexo" value="1"/>Feminino
                    </td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;Est. Civil:&nbsp;</th><td><select name="estado_civil">
                            <option value="0">Escolher</option>
                            <option value="1">Solteiro(a)</option>
                            <option value="2">Casado(a)</option>
                            <option value="3">Divorciado(a)</option>
                            <option value="4">Viúvo(a)</option>
                        </select></td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;CPF:&nbsp;</th><td><input type="text" name="cpf"  maxlength="11" value="<%=request.getParameter("cpf")%>" size="50"/></td><td></td>
                </tr>
                <tr>
                    <th>Descrição:</th><td><textarea name="descricao" rows="5" cols="39"><%=request.getParameter("descricao")%></textarea></td>
                    <td><input type="submit" value="Alterar"/></td>
                </tr>
            </table>
        </form>

Do código acima, o que não está funcionando, é o radio eo combobox, pra exemplo.

Você pode utilizar JSP EL (Expression Language), como naquele link que eu havia mandado. Ficaria mais ou menos assim:

<select name="estado_civil">
    <option value="0" ${param.estado_civil == '0' ? 'selected' : ''}>Escolher</option>
    <option value="1" ${param.estado_civil == '1' ? 'selected' : ''}>Solteiro(a)</option>
    <option value="2" ${param.estado_civil == '2' ? 'selected' : ''}>Casado(a)</option>
    <option value="3" ${param.estado_civil == '3' ? 'selected' : ''}>Divorciado(a)</option>
    <option value="4" ${param.estado_civil == '4' ? 'selected' : ''}>Viúvo(a)</option>
</select>

Este símbolo ${ } é para utilizar JSP EL. É uma boa prática utilizá-la, mas dependendo da versão do Servlet que você está utilizando (isto é definido no começo do web.xml) você pode ter que declarar no cabeçalho da sua JSP para que ela funcione:

<%@ page isELIgnored="false" %> 

Nunca usei antes “JSP EL”, mas olha só como eu estava quebrando o galho:

                    <th>&nbsp;Est. Civil:&nbsp;</th><td><select name="estado_civil">
                            <%
                                        if (request.getParameter("estado_civil").equals("1")) {
                                            out.print("<option value='1' selected>Solteiro(a)</option>");
                                            out.print("<option value='2'>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4'>Viúvo(a)</option>");
                                        } else if (request.getParameter("estado_civil").equals("2")) {
                                            out.print("<option value='1'>Solteiro(a)</option>");
                                            out.print("<option value='2' selected>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4'>Viúvo(a)</option>");
                                        } else if (request.getParameter("estado_civil").equals("3")) {
                                            out.print("<option value='1'>Solteiro(a)</option>");
                                            out.print("<option value='2' selected>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4'>Viúvo(a)</option>");
                                        } else if (request.getParameter("estado_civil").equals("4")) {
                                            out.print("<option value='1'>Solteiro(a)</option>");
                                            out.print("<option value='2'>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4' selected>Viúvo(a)</option>");
                                        }
                            %>
                        </select></td><td></td>

Kkkkk
Valeu Pessoal!