oi gente,
estou começando em java, e estou usando o struts.
tem um errinho q estah dando, q naum consegui resolver… jah pesquisei, e tentei de td. se puderem me dar uma mao.
o erro:
javax.servlet.ServletException
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.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
bom, vou colar aqui meu FormBean, q eh onde ACHO q estah o erro.
package br.com.caelum.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoForm extends ActionForm {
private Contato contato = new Contato();
public Contato getContato() {
return this.contato;
}
public boolean stringVazia(String s) {
return s == null || s.trim().length() == 0;
}
public ActionErrors validate(ActionMapping map, HttpServletRequest req) {
ActionErrors erros = new ActionErrors();
if (stringVazia(contato.getNome())) {
erros.add("nome", new ActionMessage("erro.campoNome"));
}
if (stringVazia(contato.getEmail())) {
erros.add("email", new ActionMessage("erro.campoEmail"));
}
if (stringVazia(contato.getEndereco())) {
erros.add("endereco", new ActionMessage("erro.campoEndereco"));
}
return erros;
}
public void reset(ActionMapping map, HttpServletRequest req) {
contato.setNome(null);
contato.setEmail(null);
contato.setEndereco(null);
}
}
meu AdicionaContatoAction:
package br.com.caelum.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
import br.com.caelum.jdbc.dao.ContatoDAO;
import br.com.caelum.jdbc.modelo.Contato;
import br.com.caelum.struts.form.ContatoForm;
public class AdicionaContatoAction extends Action {
public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
ContatoForm formulario = (ContatoForm)form;
System.out.println("Tentando criar um novo contato...");
Contato contato = formulario.getContato();
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
return map.findForward("ok");
}
}
meu novo.jsp:
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<html:html>
<head><title>Cadastrar usuário</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>
um pedaço do struts-config(form-beans e action-mappings):
(...)
<form-bean
name="ContatoForm"
type="br.caelum.struts.form.ContatoForm"/>
(...)
<action
path="/listaContatos"
type="br.com.caelum.struts.action.ListaContatosAction">
<forward name="lista" path="/lista.jsp"/>
</action>
<action
path="/novoContato"
type="br.com.caelum.struts.action.AdicionaContatoAction"
name="ContatoForm"
input="/novo.jsp"
scope="request">
<forward name="ok" path="/listaContatos.do"></forward>
</action>
<action
path="/removeContato"
type="br.com.caelum.struts.action.RemoveContatoAction"
name="ContatoForm"
input="/exclui.jsp"
scope="request">
<forward name="rmvOk" path="/listaContatos.do"></forward>
</action>
<action
path="/mostraContato"
type="br.com.caelum.struts.action.MostraContatoAction"
name="ContatoForm"
input="/mostra.jsp"
scope="request">
<forward name="mstOk" path="/listaContatos.do"></forward>
</action>
(...)
ah, mais uma pequena duvida… como devo chamar a pagina?
localhost:8080/struts/novo.jsp
ou
localhost:8080/struts/adicionaContato.do
?
se alguem puder me ajudar…
desde jah agrdeço.
Deus abençoe!