Duvida ao cadastrar um telefone

6 respostas Resolvido
java
D

amigos boa noite, estou com uma serie de duvidas e gostaria que os amigos entendessem pois sou iniciante, é o seguinte estou desenvolvendo um programa de controle de vendas, ate ai tudo bem, agora pensando na estrutura do banco de dados, tenho cliente, fornecedor e funcionário, ambos podem tel. fixo, movel, e cel. então criei uma tabela de telefone, ambas as telas de cadastros vão ter um imput dinâmico para que possa inserir mais de um contato de telefone. ate ai tudo bem só que me veio uma duvida e um erro.

1° como vou ter certeza que se caso de algum erro na aplicação não fique faltando dados, por ex: cadastrou o cliente mas não cadastrou o telefone.

2° estou com um erro que vou postar ai a msg de erro, tenho um while que conta quantos menu dinamicos para o telefone foram gerados porem no ultimo ele me retorna nulo ai da um erro.

java.lang.NullPointerException
br.com.leportini.action.Fornecedor.doPost(Fornecedor.java:127)

O código abaixo:

int contador = 1;
int n1 = 0;
String tel = "1";

while (n1 <= Integer.parseInt(tel)) {	        	
	System.out.println(" n1 "+n1);
	System.out.println("tel "+tel);	        	
	if(!(request.getParameter(tel).equals(null))){
		System.out.println("request telefone "+request.getParameter(tel));
		contador ++;
		n1++;
		tel = ""+contador;
	} else {
		System.out.println("valor de tel e sai da condição "+request.getParameter(tel));	        		
	}
}

a linha de numero 127 que o eclipse esta reclamando é a linha a baixo…

if(!(request.getParameter(tel).equals(null))){

desde de já eu me sinto grato pelas respostas.

6 Respostas

Rodrigo_Void
Solucao aceita

vc vai salvar todos dados em uma única operação/método/ ou botão salvar (como preferir chamar).
Esta operação deverá ser realizada através de uma TRANSACTION no banco, sendo assim, caso dê erro ao salvar o último dado, vc n comita e faz rollback(reverte tudo q foi feito no banco naquela transação).

D

Rodrigo_Void

eu tive pensando nisso mesmo, agora com relação a minha logica esta correto pensar dessa forma, ou coisa é com relação ao erro que esta apresentando, quando o imput não existir mais vai ter um retorno null. e esta dando o seguinte erro na ultima condição…

java.lang.NullPointerException
br.com.leportini.action.Fornecedor.doPost(Fornecedor.java:127)

darlan_machado

Seria algo assim:

if(null != request.getParameter(tel)) {

Desde que o objeto tel possua algum valor.

Raciocina comigo. Se você não recebeu o parâmetro a que se refere o objeto tel, ele será nulo, certo?

Object obj = request.getParameter(tel);

Logo, como você pretende invocar o método equals?

if(!obj.equals(null)) {

Vocẽ, certamente, receberá um NullPointerException, afinal, está tentando invocar um método de um objeto nulo.
Entendeu?

D

darlan_machado

boa tarde, primeiramente obrigado pela resposta! bom, nesse caso como sua resposta entraria em um loop infinito, pq n1 sempre seria menor que contador, entendeu. é pq sera um menu dinâmico eu não sei contos telefones uma pessoa pode ter, ex: fixo, movel, fax etc… então quando não existisse mais telefone ele teria que parar o loop… entendeu??

darlan_machado

Sim, mas, de qualquer maneira, você nunca vai comparar um objeto que pode estar nulo utilizando o método equals, isso é java básico. Sempre use o comparador == para isso.
Foi nesse âmbito que coloquei minha resposta.

D

darlan_machado

cara deu certo, esse era o erro!! a função agora parece que ficou zerada…

Criado 8 de março de 2019
Ultima resposta 8 de mar. de 2019
Respostas 6
Participantes 3