Boa tarde pessoal,
Minha estreia aqui com dúvidas.
Estou montando um sistemas pequeno de controle de compras para aprender a usar o struts e estou tendo alguns problemas.
Tenho um formulário para o usuário cadastrar os dados da compra onde os campos vem do ActionForm, mas está dando erro. Vou postar os códigos:
novaCompra.jsp
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<html:errors />
<html:form action="/novaCompra" >
Data Pedido:
<html:text property="compras.dtPedido" />
Nome Projeto:
<html:select property="compra.projetoCodigo" name="PedidoCompraForm">
<html:optionsCollection property="projeto" value="projeto_codigo" label="nome"/>
</html:select>
Despesas:
<html:text property="valorTotal" name="compra"/>
Formas de Pagamento:
<html:radio property="compra.formaPagamentocodigo" value="A vista" />
<html:radio property="compra.formaPagamentocodigo" value="Boleto" />
<html:radio property="compra.formaPagamentocodigo" value="Faturado - 28 dias" />
<html:radio property="compra.formaPagamentocodigo" value="Outro" /><html:text property="pgPagamentoOutro" />
Fornecedor:
<html:select property="compra.fornecedor">
<html:optionsCollection property="fornecedor" value="empresa_codigo" label="nomeFantasia"/>
</html:select>
AdicionaCompraAction.java
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//log
System.out.println("Tentanto criar um novo pedido...");
//formulário do pedido a partir do form
PedidoCompraForm formulario = (PedidoCompraForm) form;
//acessa o bean
Pedidocompra compra = formulario.getPedidocompra();
request.setAttribute("compras", formulario);
//adiciona no banco
PedidoCompraDAO dao = new PedidoCompraDAO();
dao.salvar(compra);
//ok... Visualizacao
return mapping.findForward("ok");
PedidoCompraForm.java
public class PedidoCompraForm extends ActionForm {
private static final long serialVersionUID = 6277201993742385240L;
private Pedidocompra pedidocompra = new Pedidocompra();
/**
*
* @return
*/
public Date getDtPedido(){
return this.pedidocompra.getDtPedido();
}
public Pedidocompra getPedidocompra() {
return this.pedidocompra;
}
struts-config.xml
<struts-config>
<form-beans>
<form-bean name="PedidoCompraForm" type="br.com.erpciriello.compras.struts.form.PedidoCompraForm">
<form-property name="dtPedido" type="java.util.Date" />
</form-bean>
</form-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
</global-forwards>
<action-mappings>
<action path="/Welcome" forward="/welcomeStruts.jsp"/>
<action path="/teste" type="br.com.erpciriello.compras.struts.action.TesteSimplesAction">
<forward name="ok" path="/index.jsp"/>
</action>
<action path="/listaPedidos" type="br.com.erpciriello.compras.struts.action.ListaPedidoCompraAction">
<forward name="lista" path="/listaPedidoCompra.jsp"/>
<forward name="listavazia" path="/listaPedidoVazia.jsp"/>
</action>
<action path="/comprar" forward="/novaCompra.jsp">
</action>
<action path="/novaCompra" name="PedidoCompraForm"
type="br.com.erpciriello.compras.struts.action.AdicionaCompraAction">
<forward name="ok" path="/listaPedidos.do"/>
</action>
</action-mappings>
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<message-resources parameter="com/myapp/struts/ApplicationResource"/>
Erro:
org.apache.jasper.JasperException: An exception occurred processing JSP page /novaCompra.jsp at line 16
13: <html:errors />
14: <html:form action="/novaCompra" >
15: Data Pedido:
16: <html:text property="compras.dtPedido" />
17: Nome Projeto:
18: <html:select property="compra.projetoCodigo" name="PedidoCompraForm">
19: <html:optionsCollection property="projeto" value="projeto_codigo" label="nome"/>
root cause
javax.servlet.jsp.JspException: No getter method for property: "compras.dtPedido" of bean: "br.com.erpciriello.compras.struts.form.PedidoCompraForm"
Qualquer ajuda agradeço.
Valeu.