Dúvidas Struts com MVC

Boa Tarde a todos,

Estou com um problema desde a semana passada, tenho uma query um update no meu DAO, nela passo um código na clausula “where”, mas quando seto o valor do código na minha Action, o resultado esta vindo “null” e me da o seguinte erro abaixo:

exception 

javax.servlet.ServletException: null
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

java.lang.NumberFormatException: null
	java.lang.Integer.parseInt(Unknown Source)
	java.lang.Integer.parseInt(Unknown Source)
	raa.ebt.action.CadRedeAction.executar(Unknown Source)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Mesmo colocando um código fixo na query, ele me dá esse erro.
Vou postar abaixo um parte do código da meu DAO e da minha Action:

DAO:

public boolean alterarRede(CadRedeForm redeForm) throws IOException{
			try{
				  System.out.println("CadRedeDAO: Entrou CadRedeDAO alterar.");
				  System.out.println(Utilitario.getUSUARIO());
				  System.out.println(getUtilitarioDAO().getdataHora());
				
				  System.out.println("CadRedeDAO: Antes da conexao.");
				  Connection con = getConnection();			
	         
			      pstm = con.prepareStatement(" UPDATE tblrede SET " +
			      								" desc_rede = ?, " +
			      								" uf = ?, " +
			      								" cidade = ?, " +
			      								" fone1 = ?, " +
			      								" contato1 = ?, " +
			      								" email1 = ?, " +
			      								" fone2 = ?, " +
			      								" contato2 = ?, " +
			      								" email2 = ?, " +
			      								" razao = ?, " +
			      								" insc_est = ?, " +
			      								" ender = ?, " +
			      								" cnpj = ?, " +
			      								" banco = ?, " +
			      								" agencia = ?, " +
			      								" conta = ?, " +
			      								" cadfor = ?, " +
			      								" contrato_social = ?, " +
			      								" ender_prom = ?, " +
			      								" cod_gr = ?, " +
			      								" cod_gc = ?, " +
			      								" is_ativo = ?, " +
			      								" data_status = ?, " +
			      								" obs = ? " +	      								
			      								" WHERE cod_rede = 550");
	      
	       			            
			      pstm.setString(1,redeForm.getDescrede());  
			      pstm.setString(2,redeForm.getUf());
			      pstm.setString(3,redeForm.getCidade());
			      pstm.setString(4,redeForm.getFone1());
			      pstm.setString(5,redeForm.getContato1());
			      pstm.setString(6,redeForm.getEmail1());
			      pstm.setString(7,redeForm.getFone2());
			      pstm.setString(8,redeForm.getContato2());
			      pstm.setString(9,redeForm.getEmail2());
			      pstm.setString(10,redeForm.getRazaoSocial());
			      pstm.setString(11,redeForm.getInscrEst());
			      pstm.setString(12,redeForm.getEndereco());
			      pstm.setString(13,redeForm.getCnpj());
			      pstm.setString(14,redeForm.getBanco());
			      pstm.setString(15,redeForm.getAgencia());
			      pstm.setString(16,redeForm.getContaCorrente());
			      pstm.setString(17,redeForm.getCadFor());
			      pstm.setString(18,redeForm.getNumContrato());
			      pstm.setString(19,redeForm.getEnderProm());
			      pstm.setInt(20,Integer.parseInt(redeForm.getCodgr()));
			      pstm.setInt(21,Integer.parseInt(redeForm.getCodgc()));	      
			      pstm.setString(22,redeForm.getIsativo());	      
			      pstm.setString(23,redeForm.getDataStatus());
			      pstm.setString(24,redeForm.getObs());
			      pstm.setInt(25,Integer.parseInt(redeForm.getCodigo()));

Action:

public ActionForward executar(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  
		  
	 	  	System.out.println("Entrou no metodo Executar");
	 	  
	 	  	CadRedeForm redeForm = (CadRedeForm) form;
	 	  	CadRedeVO cadRedeVO = new CadRedeVO();
	 	  
	 	    //carregando o bean
		  
			//System.out.println("Executar - Codigo: " + Integer.parseInt(redeForm.getCodigo()));  
	 	  
	 	  	  //cadRedeVO.setCodigo(Integer.parseInt(redeForm.getCodigo()));	  	
	 	  	  cadRedeVO.setCodigo(550);	 	  	  
			  //System.out.println("Codigo: " + redeForm.getCodigo());
			  cadRedeVO.setDescRede(redeForm.getDescrede());
			  //System.out.println("Codigo: " + Integer.parseInt(redeForm.getCodigo()));
			  //cadRedeVO.setPesqRede(redeForm.PesqRede);
			  cadRedeVO.setUf(redeForm.getUf());
			  cadRedeVO.setDescRede(redeForm.getDescrede());
			  cadRedeVO.setCidade(redeForm.getCidade());
			  cadRedeVO.setFone1(redeForm.getFone1());
			  cadRedeVO.setContato1(redeForm.getContato1());
			  cadRedeVO.setEmail1(redeForm.getEmail1());
			  cadRedeVO.setFone2(redeForm.getFone2());
			  cadRedeVO.setContato2(redeForm.getContato2());
			  cadRedeVO.setEmail2(redeForm.getEmail2());
			  cadRedeVO.setEmailAlternativo(redeForm.getEmailAlternativo());
			  cadRedeVO.setRazao(redeForm.getRazaoSocial());
			  cadRedeVO.setInscEst(redeForm.getInscrEst());
			  cadRedeVO.setEnder(redeForm.getEndereco());
			  cadRedeVO.setCnpj(redeForm.getCnpj());
			  cadRedeVO.setBanco(redeForm.getBanco());
			  cadRedeVO.setAgencia(redeForm.getAgencia());
			  cadRedeVO.setConta(redeForm.getContaCorrente());
			  cadRedeVO.setCadFor(redeForm.getCadFor());
			  cadRedeVO.setNumContrato(redeForm.getNumContrato());
			  cadRedeVO.setEnderProm(redeForm.getEnderProm());
			  cadRedeVO.setCodgr(Integer.parseInt(redeForm.getCodgr()));
			  cadRedeVO.setCodgc(Integer.parseInt(redeForm.getCodgc()));
			 //System.out.println("Depois do codigo: " + Integer.parseInt(redeForm.getCodigo()));	  
			  String isativo = request.getParameter("isativo");   
				if (isativo == null){   
					redeForm.setIsativo("0");   
				}else{   
					redeForm.setIsativo("1");   
				}
			  //passa uma String para data
			  //cadRede.setDataStatus(new DateTime(redeForm.getDataStatus()));
			  cadRedeVO.setDataStatus(redeForm.getDataStatus());
			  cadRedeVO.setObs(redeForm.getObs());
	 	  	 	  
		  //
		 
			System.out.println("Antes de entrar no IF do codigo: " + redeForm.getCodigo());  
		  
		  if (redeForm.getCodigo() == null && redeForm.getCodigo() == ""){
			  
			  CadRedeDAO redeDAO = new CadRedeDAO();
			  
			  if (redeDAO.incluirRede(cadRedeVO)){ 
				  executaListaRede(mapping, form, request, response);
				  return mapping.findForward("success");     
			  }
			  else{
				  return mapping.findForward("failure");
			  }
		  }else{			  
			  
			  CadRedeDAO redeDAO = new CadRedeDAO();
			  
			  if (redeDAO.alterarRede(redeForm)){ 
				  executaListaRede(mapping, form, request, response);
				  redeForm.reset(mapping, request);
				  return mapping.findForward("success");     
			  }
			  else{
				  return mapping.findForward("failure");
			  }
		   }
		}

Desde já agradeço,

Vitor

Olhando o stacktracejava.lang.NumberFormatException: null ...Isso indica que vc está tentando converter um valor nulo, então creio que o problema esteja em uma dessas linhas:

pstm.setInt(20,Integer.parseInt(redeForm.getCodgr())); pstm.setInt(21,Integer.parseInt(redeForm.getCodgc())); ... pstm.setInt(25,Integer.parseInt(redeForm.getCodigo()));
Ou nas linhas equivalentes do VO.

Blz? Flw! :thumbup:

Juliano,

Com certeza é nessa linha aqui pstm.setInt(25,Integer.parseInt(redeForm.getCodigo())); que esta dando o problema.
Isso consegui identificar. Mas não estou conseguindo resolver esse problema.
Teria como vc me ajudar?!

Muito obrigado,

Vitor

Vc só precisa descobrir porque o valor do código está vindo nulo no seu form.

Blz? Flw! :thumbup: