Erro na construção do formulario

Ola pessoal estou tentando construir um formulario com struts só que esta dando o seguinte erro alguem sabe o que pode estar acontecendo de errado

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Cannot retrieve definition for form bean null on action /novocontato
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.ServletException: Cannot retrieve definition for form bean null on action /novocontato
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.novo_jsp._jspService(novo_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.jsp.JspException: Cannot retrieve definition for form bean null on action /novocontato
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:767)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:443)
org.apache.jsp.novo_jsp._jspx_meth_html_form_0(novo_jsp.java:148)
org.apache.jsp.novo_jsp._jspx_meth_html_html_0(novo_jsp.java:104)
org.apache.jsp.novo_jsp._jspService(novo_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.

Tenta colocar isso no jsp

<html:form action="/recrutar/candialterar" focus="nome" onsubmit="return validateCandi(this)">

Opa,

você informou no struts-config um form bean para esta action?

:okok:

sim informei ta assim

<form-beans>
<form-bean name=“ContatoForm” type=“br.com.paulo.struts.form.ContatoForm” />
</form-beans>

mas você não informou nenhuma propriedade e o erro fala ocorreu um erro ao encontra um o form bean vazio…

:okok:

valeu vou tentar

eu acrescentei propriedades mas não funcionou acrescentei o seguinte codigo no form-bean

<form-beans>
<form-bean name=“ContatoForm” type=“br.com.paulo.struts.form.ContatoForm” />
<form-property name=“contato.nome” type=“java.lang.String” />
<form-property name=“contato.email” type=“java.lang.String” />
<form-property name=“contato.endereco” type=“java.lang.String” />
</form-bean>

O erro continua o mesmo? post aí para nós como você está declarando esta action e tudo mais.

:okok:

vou colocar todos os arquivos quem sabe vcs encontram algum erro que eu não estou enxergando

#AdicionaContatoAction.java

package br.com.paulo.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.paulo.jdbc.dao.ContatoDao;
import br.com.paulo.jdbc.modelo.Contato;
import br.com.paulo.struts.form.ContatoForm;

public class AdicionaContatoAction extends Action {

@Override
public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
	// TODO Auto-generated method stub
	
	ContatoForm formulario = ((ContatoForm)form);
	
	Contato contato = formulario.getContato();
	
	ContatoDao dao = new ContatoDao();
	
	dao.adiciona(contato);
	
	return map.findForward("certo");
}

}

#ContatoForm.java

package br.com.paulo.struts.form;

import org.apache.struts.action.ActionForm;

import br.com.paulo.jdbc.modelo.Contato;

public class ContatoForm extends ActionForm {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private Contato contato = new Contato();

public Contato getContato() {
	return this.contato;
}

}

#novo.jsp

<%@ taglib uri="/tags/struts-html" prefix=“html” %>
<html:html>
<head><title>Sistema de Teste do Struts</title></head>
<html:errors/>
<html:form action="/novocontato" focus=“contato.nome” >
Nome:
<html:text property=“contato.nome”/>
<br/>
Email:
<html:text property=“contato.email”/>
<br/>
Endereço:
<html:text property=“contato.endereco”/>
<br/>
<html:submit>Enviar dados</html:submit>
<br/>
</html:form>
</html:html>

#struts-config.xml

<form-beans>
<form-bean name=“ContatoForm” type=“br.com.paulo.struts.form.ContatoForm” />
<form-property name=“contato.nome” type=“java.lang.String” />
<form-property name=“contato.email” type=“java.lang.String” />
<form-property name=“contato.endereco” type=“java.lang.String” />
</form-bean>

    &lt;action path="/listacontato" type="br.com.paulo.struts.action.ListaContato"&gt;
    	&lt;forward name="lista" path="/pages/listacontato.jsp" /&gt;
    	&lt;forward name="listavazia" path="/pages/listavazia.jsp" /&gt;
    &lt;/action&gt;

<action path="/novocontato" type=“br.com.paulo.struts.action.AdicionaContatoAction” >
<forward name=“certo” path="/listacontato.do" />
</action>

Opa,

você tem que informar o form na declaração da tua action:

:okok:

Beleza cara?

Pelo que vi no seu código você não está usando dynaforms, por isso você não precisa colocar as propriedades do seu form desta forma:

orm-beans&gt;
&lt;form-bean name=&quot;ContatoForm&quot; type=&quot;br.com.paulo.struts.form.ContatoForm&quot; /&gt;
&lt;form-property name=&quot;contato.nome&quot; type=&quot;java.lang.String&quot; /&gt;
&lt;form-property name=&quot;contato.email&quot; type=&quot;java.lang.String&quot; /&gt;
&lt;form-property name=&quot;contato.endereco&quot; type=&quot;java.lang.String&quot; /&gt;
&lt;/form-bean&gt; 

acho que assim vai dar até erro.

pode fazer simplesmente assim

orm-beans&gt;
&lt;form-bean name=&quot;ContatoForm&quot; type=&quot;br.com.paulo.struts.form.ContatoForm&quot; /&gt;
&lt;/form-bean&gt; 

Mas claro que tem que fazer como o marcossousa falou senão nada funciona.
Espero ter ajudado, até mais!