EDITADO
Pessoal, o erro anterior que estava dando, consegui arrumar, era a minha tag beans que estava no local errado, ela tem obrigatoriamente que ficar fora do actions-mappings…
Bom, agora o erro é outro, parece que não tá encontrando o path correto…
ContatoForm
package br.com.thiago.struts.form;
import org.apache.struts.action.ActionForm;
import br.com.thiago.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;
}
}
AdicionaContatoAction
package br.com.thiago.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.thiago.jdbc.dao.ContatoDAO;
import br.com.thiago.jdbc.modelo.Contato;
import br.com.thiago.struts.form.ContatoForm;
public class AdicionaContatoAction extends Action{
@Override
public ActionForward execute(ActionMapping map, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("Tentando criar um novo contato...");
ContatoForm formulario = ((ContatoForm) form);
Contato contato = formulario.getContato();
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
return map.findForward("adiciona");
}
}
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<struts-config>
<form-beans>
<form-bean name="ContatoForm" type="br.com.thiago.struts.form.ContatoForm"/>
</form-beans>
<action-mappings>
<action path="/teste" type="br.com.thiago.struts.action.TesteSimplesAction">
<forward name="ok" path="/exemplo.jsp"/>
</action>
<action path="/listacontatos" type="br.com.thiago.struts.action.ListaContatosAction">
<forward name="lista" path="/lista.jsp"/>
<forward name="vazia" path="/vazia.jsp"/>
</action>
<action path="/novoContato" name="ContatoForm" type="br.com.thiago.struts.action.AdicionaContatoAction">
<forward name="adiciona" path="/listaContatos.do"/>
</action>
</action-mappings>
<!-- Arquivo de Mensagens -->
<message-resources parameter="MessageResources"/>
</struts-config>
novo.jsp
<%@ taglib uri="http://struts.apache.org/tags-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/>
<html:submit>Enviar dados</html:submit>
<br/>
</html:form>
</html:html>
And finally the issue!!!
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.servlet.ServletException: org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
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
javax.servlet.ServletException: org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
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)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
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)
root cause
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
org.apache.struts.chain.commands.AbstractSelectAction.execute(AbstractSelectAction.java:71)
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)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
