Olá a todos,
Estou seguindo a apostila de Web da Caelum e estou com uma dificuldade, abaixo…
Erro:
19/07/2009 20:15:22 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: No getter method for property: "contato.endereco" of bean: "br.com.caelum.struts.form.ContatoForm"
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:915)
at org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:126)
at org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102)
at org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:80)
at org.apache.jsp.novo_jsp._jspx_meth_html_005ftext_005f2(novo_jsp.java:244)
at org.apache.jsp.novo_jsp._jspx_meth_html_005fform_005f0(novo_jsp.java:175)
at org.apache.jsp.novo_jsp._jspx_meth_html_005fhtml_005f0(novo_jsp.java:114)
at org.apache.jsp.novo_jsp._jspService(novo_jsp.java:79)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Meu codigo:
BEAN
public class Contato {
private String nome;
private String email;
private String endereço;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereço() {
return endereço;
}
public void setEndereço(String endereço) {
this.endereço = endereço;
}
}
action form
public class ContatoForm extends ActionForm{
private Contato contato = new Contato();
public Contato getContato() {
return contato;
}
}
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;
public class AdicionaContatoAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// log
System.out.println("Tentando criar um novo contato...");
ContatoForm formulario = (ContatoForm) form;
Contato contato = formulario.getContato();
return mapping.findForward("ok");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
<form-beans>
<form-bean name="ContatoForm" type="br.com.caelum.struts.form.ContatoForm"/>
</form-beans>
<action-mappings>
<action path="/novoContato" name="ContatoForm"
type="br.com.caelum.struts.action.AdicionaContatoAction">
</action>
<action path="/novoContato" name="ContatoForm"
type="br.com.caelum.struts.action.AdicionaContatoAction">
<forward name="ok" path="/listaContatos.do"/>
</action>
</action-mappings>
</struts-config>
Eu não gostaria de duplicar as informações do meu bean na actionform, eu gostaria de aproveitar os códigos do bean…
Sera que alguém poderia me ajudar?
Obrigado