Problema com Formulario

3 respostas
R

Esta ocorrendo é que quando deixo algum campo vazio ele esta me retornando este erro:[size="9"]


exception

javax.servlet.ServletException: empty String
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

java.lang.NumberFormatException: empty String
sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:994)
java.lang.Float.parseFloat(Float.java:394)
site.action.AvaliacaoFisicaAction.execute(AvaliacaoFisicaAction.java:58)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

Formulario:

<html:form action="/cadastroFisico1" method="post" enctype="multipart/form-data">
                <html:hidden property="idCliente" value="<%=request.getParameter("idCliente")%>" name="avaliacaoFisica"/>                         
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td colspan="4" align="center" valign="middle" class="formTopo">Avaliação Física </td>
                        <td> </td>
                        <td> </td>
                    </tr>                   
                     <tr>
                        <td width="15%"> </td>
                        <td width="32%"> </td>
                        <td width="16%"> </td>
                        <td width="37%"> </td>
                    </tr>                     
                    <tr>
                        <td align="right" valign="middle" class="texto"><bean:message key="campo.peso"/>:</td>
                        <td align="left" valign="middle" class="texto"><html:text property="peso" name="avaliacaoFisica" styleClass="formCampo1"  onfocus="this.style.margin = '0' ; this.style.borderWidth = '2px'; this.style.backgroundColor = '#FFFFFF'; " onblur="this.style.margin = '1px'; this.style.borderWidth = '1px'; this.style.backgroundColor = '#E9F0F5';" />Kg</td>                        
                       
                    </tr>
                    <tr>
                        <td align="right" valign="middle" class="texto"><bean:message key="campo.altura"/>:</td>
                        <td align="left" valign="middle" class="texto"><html:text property="altura" name="avaliacaoFisica" styleClass="formCampo1"  onfocus="this.style.margin = '0' ; this.style.borderWidth = '2px'; this.style.backgroundColor = '#FFFFFF'; " onblur="this.style.margin = '1px'; this.style.borderWidth = '1px'; this.style.backgroundColor = '#E9F0F5';" />m</td>                        
                   
                    <tr>
                        <td align="right" valign="middle" class="texto"><bean:message key="campo.torax"/>:</td>
                        <td align="left" valign="middle" class="texto"><html:text property="torax" name="avaliacaoFisica" styleClass="formCampo1"  onfocus="this.style.margin = '0' ; this.style.borderWidth = '2px'; this.style.backgroundColor = '#FFFFFF'; " onblur="this.style.margin = '1px'; this.style.borderWidth = '1px'; this.style.backgroundColor = '#E9F0F5';" />cm</td>
                        
                    </tr>
                     <tr>
                        <td colspan="4" align="center">
                            <html:reset value="Limpar" styleClass="formButton" />
                           <html:submit value="Enviar" styleClass="formButton" />
                       </td>
                    </tr>
                    <tr>
                        <td> </td>                   
                        <td> </td>                   
                    </tr>    
                    
                    
                </table>
        </html:form>
Action:
public class AvaliacaoFisicaAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

          DynaValidatorForm dynaForm = (DynaValidatorForm)form;         

          long idCliente = Long.parseLong(dynaForm.get("idCliente").toString());         
          peso = Float.parseFloat(dynaForm.get("peso").toString());   
          altura = Float.parseFloat(dynaForm.get("altura").toString());
          torax = Float.parseFloat(dynaForm.get("torax").toString());    


           VOFisico fisico  = new VOFisico (idCliente,peso,altura,torax);    
           DAOFisico.insert(fisico);     
    
           return mapping.findForward("index");
    
    }  
    
}
[/size]

3 Respostas

P

por isso q eu não gosto de tipo primitivo…

vc não pode fazer o parse na String vazia…se vc realmente vai manter seus atributos como tipos primitivos…trate eles antes, verifica se são diferentes de nulo e vazio.

espero ter ajudado…

S

cara valida isso no ActionForm…

V

Coloca no struts-config.xml validate=true e depois fica fazendo a verificação no metodo validate do ActionForm

Criado 12 de abril de 2007
Ultima resposta 20 de abr. de 2007
Respostas 3
Participantes 4