Select não armazena opção apos refresh

Tenho um select com 3 values, se selecionar Operação, ele mostra um sub menu com as operações, o mesmo para o Local…

> <select name="filtro" id="filtro" class="Input form-control">
>     <option value="<%=filtro%>"><%=filtro%></option>
>     <option value="1">Operação</option>
>     <option value="2">Local</option>   
> </select>

Porem a primeira opção

<option value="<%=filtro%>"><%=filtro%></option>

Ela é formatada assim:

String filtro = request.getParameter(“filtro”) ==null ? “Selecione” : request.getParameter(“filtro”).toString();

Toda vez que atualizo a pagina, o select de filtro ele reseta “Não armazena o que eu selecionei” então sempre que atualizo a pagina ele sempre vai mostrar Selecione…

Mas os outros sub menu eles mantem a opção que eu selecionei mesmo apos atualizar a pagina…

Como posso fazer para manter o que eu selecionei nesse primeiro menu de Filtro ?

Como parece que está fazendo usando scriptlet (eca!). Uma forma é tratar as options, mais ou menos assim:

<select name="filtro" id="filtro" class="Input form-control">
    <option value="<%=filtro%>"><%=filtro%></option>
    <option value="1" <%= filtro.equals("1") ? "SELECTED" : "" %>>Operação</option>
    <option value="2" <%= filtro.equals("2") ? "SELECTED" : "" %>>Local</option>   
</select>

Continua alterando :confused:

Com esse exemplo que passei, ele adicionou o SELECTED na option selecionada quando vc inspeciona o html?

Não

image

O que isso <%=filtro%> retorna?

String filtro = request.getParameter(“filtro”) ==null ? “Selecione” : request.getParameter(“filtro”).toString();

Ele verifica o id filtro, e coloca Selecione se for nulo, se não ele passa o value que foi selecionado.

E quando vc seleciona um valor no select, esse request.getParameter(“filtro”) retorna o valor selecionado?

Calma ai vou tentar verificar

Como parece que eh uma consulta, acho que o que está acontecendo é o comportamento normal (de limpar os campos preenchidos após o refresh), pois o estado não eh armazenado a menos que vc implemente isso. E para implementar isso, vc teria que armazenar numa sessão (request.getSession().setAttribute(...)) e depois recuperar, ou manipular com javascript armazenando em cookies, ou fazendo uma requisição para um backend para guardar e recuperar os valores dos filtros.