Boa noite pessoal do GUJ sou eu novamento com mais uma dúvida!
Tenho uma lista drop-down na minha JSP, quando algúm ítem dessa lista é selecionado automaticamento é feito um submit para minha servlet que recebe o parâmetro, em seguida devolvo esse valor para JSP para que o campo da lista drop-down tenha o item que foi selecionado anteriormente. O problema tá aqui, não consigo deixa o valor que eu escolhi selecionado!
Vou postar meu código!
Segue o trexo da JSP:
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<%@page import="br.com.sun.dhd.modelo.*" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de Teste</title>
</head>
<body>
<form name="formTeste" action="ServletAtivo" method="post">
<fieldset>
<legend>Cadastro de Ativos:</legend>
<span>
<label for="fabricante">Fabricante:</label>
</span>
<select name="fabricante" onchange="javascript:document.formTeste.submit();" tabindex="1">
<option value="-1">Selecione o Fabricante</option>
<c:forEach var="listaFabricantes" items="${requestScope['fab']}">
<option value="${listaFabricantes.id}" ${listaFabricantes.id == fabSelecionado ? 'selected' : ''}> ${listaFabricantes.fabricante}</option>
</c:forEach>
</select>
</fieldset>
</form>
</body>
</html>
Agora a Servlet!
public class ServletAtivo extends HttpServlet {
private ArrayList<Fabricante> fabricantes = new ArrayList<Fabricante>();
DAOFabricante daoFab = new DAOFabricante();
@Override
public void init() throws ServletException {
daoFab.getConsulta();
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=ISO-8859-1");
request.setAttribute("fab", fabricantes);
if(request.getParameter("fabricante") == null) {
request.setAttribute("fab", daoFab.getConsulta());
}
if (request.getParameter("fabricante") != null && !request.getParameter("fabricante").equals("-1")) {
for (Fabricante f : fabricantes) {
if (f.getId() == Integer.parseInt(request.getParameter("fabricante"))) {
String fabSelecionado = Integer.toString(f.getId());
request.setAttribute("fab", daoFab.getConsulta());
request.setAttribute("fabSelecionado", fabSelecionado);
break;
}
}
request.setAttribute("fab", daoFab.getConsulta()); //Preciso devolver a lista de Fabricantes
}
request.getRequestDispatcher("/teste.jsp").forward(request, response);
}
Pessoal, se poderem me ajudar vou agradecer muito, estou aprendendo a usar a biblioteca JSTL ainda.
Att.