Ajuda aqui por favor! (Radio Buttons) Resolvido

6 respostas
limasiqueira

Olá caros colegas;

Por favor alguém com mais experiencia que eu pode me ajudar. Tenho uma pagina .jsp e nesta tem um grupo de botões, uma caixa de texto e um botão submit.
O objetivo é o usuario selecionar um radio button digitar algo na caixa de texto e clicar no botão submit, com isso a pagina jsp submete os parametros do radio button e da caixa de texto para uma classe que trata os parametros e retorna o resultado da busca na mesma pagina jsp. O erro que esta retornando da pagina que eu fiz é “java.lang.NullPointerException”.
Segue codigos:

Pagina JSP:

<%<a class="mention" href="/u/page">@page</a> contentType=“text/html%>

<%<a class="mention" href="/u/page">@page</a> pageEncoding=“UTF-8”%>

<%<a class="mention" href="/u/page">@page</a> import=“java.sql.*” %>
<jsp:useBean id=“cliente” scope=“session”

class=“ExemploCliente.Cliente”/>

<jsp:setProperty name=“cliente” property="*"/>
<%

String matricula;

String radio;

radio = request.getParameter(grupoteste);

matricula = request.getParameter(consultaField);

%>
Documento sem título

teste 01
teste 02
<%
ResultSet rs = cliente.buscaCliente(matricula,radio);
%>
<%
while(rs.next()){

%>

<%= rs.getString("teste") %> 

<%}%> 

Metodo buscaCliente:

public ResultSet buscaCliente(String matricula, String radio){

String campo = “”;

//radio = “teste02”;
//<strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>PROBLEMA AQUI</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>*********

// O RADIO NÃO VEM COM O DETERMINADO PARAMETRO

if (radio.equals(“teste01”))

{

campo = “teste”;

}

else if (radio.equals(“teste02”))

{

campo = “teste”;

}

//FIM****************************

try {

sql = “select * from testegrupo where “+campo+” like '%”+matricula+"%’";

return conec.getSt().executeQuery(sql);

}

catch (Exception ex){

return null;

}

}

Fico no aguardo de uma ajuda.

Grato

6 Respostas

Pedrosa

Da esse java.lang.NullPointerException devido aos valores da primeira vez estarem em branco coloque um if no request antes de jogar o valor a sua variável:

if(request.getParameter("grupoteste")!=null){
     radio = request.getParameter("grupoteste"); 
}

Não utilize comandos Java no JSP, prefira usar taglibs como a jstl, onde você passaria uma lista no request e pegaria via foreach.

fabiozoroastro

Para postar códigos utilize a tag BBCode.
Bom, primeiramente, quando fizer um equals. Utilize o objeto que o invoca primeiro. Assim:

if ("teste01"equals(radio))

Assim, nunca dará nulPoiinter. Segundo, posta a parte do código que você pega os valores dos radios na servlet. Só adiantando, pra vc pegar, tem que fazer:

String[] arrayDosRadios = req.getParameterValues();

Abraço.

limasiqueira

Obrigado pelo retorno;

fiz o que sugerirão, porém não adiantou, fabio quanto ao codigo desculpe mais não entendi bem o que quer que eu post, por favor desculpem é que eu sou novato com programação web.

Você falou algo relacionado a servelet, eu sei o que são servelet, mais não sei vizualiza - las e nem como analisalas, a questão é que eu venho aprendendo tudo nos foruns e tutoriais da vida e agora estou com este problema ai dos radios, se conseguirem resolver isso, ou então um exemplo parecido com isto para eu seguir, ja me ajuda muito.

bom o que fiz foi isso ai.

JSP
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>

<jsp:useBean id="cliente" scope="session"
class="ExemploCliente.Cliente"/>
<jsp:setProperty name="cliente" property="*"/>

<%
String matricula;
String radio = "";
 if(request.getParameter("grupoteste")!=null){
      radio = request.getParameter("grupoteste"); 
 }
 
matricula = request.getParameter("consultaField");
%>

<html>
<head>
<title>Documento sem t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="teste.jsp">
  <p align="center"> 
    <input name="consultaField" type="text" id="consultaField">
  </p>
  <table width="200" align="center">
    <tr>
      <td><label>
        <input name="grupoteste" type="radio" value="teste01" checked>
        teste 01</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="radio" name="grupoteste" value="teste02">
        teste 02</label></td>
    </tr>
  </table>
  <p>&nbsp; 
    <%       
		     ResultSet rs = cliente.buscaCliente(matricula,radio);
			 %>
    <%
 				 while(rs.next()){

  			     %>
  </p>
  <p align="center"><%= rs.getString("teste") %>&nbsp; </p>
  <p align="left"><%}%>&nbsp;</p>
  <p align="center">
    <input type="submit" name="Submit" value="Buscar">
  </p>
</form>
</body>
</html>
METODO
public ResultSet buscaCliente(String matricula, String radio){
       String campo = "";
       //radio = "teste02";
       
//******************************PROBLEMA AQUI***************************************
// O RADIO NÃO VEM COM O DETERMINADO PARAMETRO
       if ("teste01".equals(radio))
        {
            campo = "teste";        
        }
        else if ("teste02".equals(radio))
        {
            campo = "teste";
        }

//***************************FIM*******************************************************
       
       
try {
            sql = "select * from testegrupo where "+campo+" like  '%"+matricula+"%'";
            return conec.getSt().executeQuery(sql);
        }
        catch (Exception ex){
            return null;
        }
    }
limasiqueira

pedrosa;

Não sei trabalhar com taglibs, porém farei pesquisas sobre…
Desculpe é que estou aprendendo a trabalhar para web agora.

fabiozoroastro

Opa, este método:

Quem o chama?

limasiqueira

Opa, valeu ai galera, problema resolvido…

Eu apenas coloquei um if (rs != null) antes do while…

grato a todos.

Criado 14 de maio de 2007
Ultima resposta 15 de mai. de 2007
Respostas 6
Participantes 3