ezmarques 20 de mar. de 2012
Debug por partes a sua aplicação para verificar onde está o problema.
Verifique se o HTML está com os valores corretos
Verifique se os valores no POST estão corretos
Verifique se o servlet recebeu os valores corretos.
por ai vai
BtAquino 21 de mar. de 2012
Fiz os testes e não conseguir achar o defeito.
Troquei o Combobox por um Input e gravou normalmente no campo.
O problema deve estar no combobox do JSP não? pois o Input funcionou.
ezmarques 21 de mar. de 2012
Cara, use o firebug ou qquer coisa do gênero para ver se o HTML que aparece no browser está com o value setado corretamente.
Se estiver OK, veja se o post que sai do browser também está com o parameter setado corretamente.
Aliás, acho que o nome do parameter é cidade, não uf!
BtAquino 22 de mar. de 2012
Troquei o Parâmetros de uf para cidade, mas também não funcionou.
Estou tendo dificuldade para resolver este problema, Não consigo acha erro com o Debug.
Vou colocar minha JSP e Servlet inteira para ver se ajuda.
<%--
Document : adiciona - cidade
Created on : 19 / 03 / 2012 , 17 : 28 : 37
Author : Administrador
--%>
<% @page contentType = "text/html" pageEncoding = "UTF-8" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
< jsp : useBean id = "modelo" class = " modelo . Cidade "/>
< ! DOCTYPE html >
< c : import url = "cabecalho.jsp" />
< form action = "AdicionaCidade" >
< fieldset >
< legend > Cadastro de Cidade </ legend >
< table >
< tr >
< td > Nome : </ td >
< td >< input type = "text" name = "nomeCidade" size = "30" />< br /></ td >
</ tr >
< tr >
< td > Uf : </ td >
< td >< input type = "text" name = "uf" size = "30" />< br /></ td >
</ tr >
< tr >
< td > UF : </ td >
< td >
< select size = "1" name = "cidade" >
< option selected value = "Selecione" > Selecione ! </ option >
< option value = "$ {cidade.uf} " > PR </ option >
< option value = "$ {cidade.uf} " > SP </ option >
</ select >
</ td >
</ tr >
< tr >
< td >< input type = "submit" value = "Gravar" /></ td >
</ tr >
</ table >
</ fieldset >
</ form >
< c : import url = "rodape.jsp" />
public class AdicionaCidadeServlet extends HttpServlet {
protected void processRequest ( HttpServletRequest request , HttpServletResponse response )
throws ServletException , IOException {
PrintWriter out = response . getWriter ();
String nome = request . getParameter ( "nomeCidade" );
String uf = request . getParameter ( "uf" );
Cidade novaCidade = new Cidade ();
novaCidade . setNomeCidade ( nome );
novaCidade . setUf ( uf );
CidadeDao dao = new CidadeDao ();
dao . adiciona ( novaCidade );
try {
RequestDispatcher rd = request . getRequestDispatcher ( "/cidade-adicionada.jsp" );
rd . forward ( request , response );
} finally {
out . close ();
}
}
ezmarques 22 de mar. de 2012
Isso aqui não funciona?
String nome = request.getParameter("cidade");
BtAquino 23 de mar. de 2012
Não, ele salva apenas o nome da cidade.
ezmarques 23 de mar. de 2012
Eu coloquei errado. Era pra ser:
String uf = request.getParameter("cidade");
Instale o firebug para o firefox e monitore o post que você está dando para ver o que está indo! Isso vai ajudar muito pra descobrir o problema.
BtAquino 26 de mar. de 2012
Como funciona esse Firebug no Chrome ?
tentei usar aqui, mas acho que não consegui.
outerHTML
"<select size= "1" name= "cidade" > \n
<option selected= "" value= "Selecione" > Selecione!</option> \n
<option value= "" > PR</option> \n
<option value= "" > SP</option> \n
</select> "
Não sei se isso ai vai ajudar muito.
ezmarques 26 de mar. de 2012
Ajuda sim.
Isso que você postou é o resultado que você extraiu do firebug, certo?
Por ele dá pra ver que é no seu jsp o problema, já que o value das tag option de cada estado estão vazias.
Portanto este trecho está errado
<select size= "1" name= "cidade" >
<option selected value= "Selecione" > Selecione!</option>
<option value= " ${ cidade . uf } " > PR</option>
<option value= " ${ cidade . uf } " > SP</option>
</select>
Como este jsp é chamado na sua aplicação? Tente substituir ${cidade.uf} pelos values de cada cidade para ver se tudo funciona OK.
Caso funcione, depois acertamos para setar isso dinamicamente
brunojf 26 de mar. de 2012
Provavelmente o seu erro está acontecendo porque você esta tentando fazer um combo fixo parem com valores que precisão ser interados(modificado a cada option).
<td> UF:</td>
<td>
<select size= "1" name= "cidade" >
<option selected value= "Selecione" > Selecione!</option>
<option value= " ${ cidade . uf } " > PR</option>
<option value= " ${ cidade . uf } " > SP</option>
</select>
</td>
"cidade.uf" nesse caso teria um valor diferente a cada option correto ?
Já que você tem uma lista fixa você não precisa usar um atributo cidade.uf pois o valor dele não vai mudar, já que você não está interando ele e nem carregando informações do banco de dados por exemplo.
Como é uma lista fixa de valores coloque assim :
<td> UF:</td>
<td>
<select size= "1" name= "cidade" >
<option selected value= "Selecione" > Selecione!</option>
<option value= "PR" > PR</option>
<option value= "SP" > SP</option>
</select>
</td>
Att;
BtAquino:
Estou fazendo um Combox fixo em .JSP, porém o mesmo me apresenta a informação, mas grava em branco no banco de dados
Trecho JSP:
<td> UF:</td>
<td>
<select size= "1" name= "cidade" >
<option selected value= "Selecione" > Selecione!</option>
<option value= " ${ cidade . uf } " > PR</option>
<option value= " ${ cidade . uf } " > SP</option>
</select>
</td>
O atributo da minha classe Cidade que grava o estado é uf.
Método que adiciona na CidadeDao:
public void adiciona ( Cidade cidade ) {
String sql = "insert into tbcidade (nomeCidade, uf) values (?,?)" ;
try {
PreparedStatement stmt = connection . prepareStatement ( sql );
stmt . setString ( 1 , cidade . getNomeCidade ());
stmt . setString ( 2 , cidade . getUf ());
stmt . execute ();
stmt . close ();
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
Trecho Servlet:
String nome = request . getParameter ( "nomeCidade" );
String uf = request . getParameter ( "uf" );
Cidade novaCidade = new Cidade ();
novaCidade . setNomeCidade ( nome );
novaCidade . setUf ( uf );
CidadeDao dao = new CidadeDao ();
dao . adiciona ( novaCidade );
BtAquino 26 de mar. de 2012
Agora deu certo!
Obrigado!
Ficou assim:
Servlet
String uf = request.getParameter("cidade");
JSp:
<tr>
<td>UF:</td>
<td>
<select size="1" name="cidade">
<option selected value="Selecione">Selecione!</option>
<option value="PR">PR</option>
<option value="SP">SP</option>
</select>
</td>
</tr>