Problema com Struts

1 resposta
J

Caros Colegas :slight_smile:

Estou com o seguinte problema : Estou desenvolvendo(estudo) um aplicativo simples de controle de despesas com struts.Na pagina onde cadastro as despesas teclo no botão “Cadastrar” e nada acontece , não dar erro só atualiza a url mais fica parado na mesma pagina.ele deveria cadastrar a despesa e retorna a pagina principal.

Segue o codigo para analise de vocês.

1.CADASTRARDESPESA.JSP

<%<a class="mention" href="/u/page">@page</a> contentType=text/html%>

<%<a class="mention" href="/u/page">@page</a> pageEncoding=UTF-8%>

<%@taglib uri=<a href="http://java.sun.com/jsp/jstl/core">http://java.sun.com/jsp/jstl/core</a> prefix=c%>

<%<a class="mention" href="/u/page">@page</a> import =  java.util.<em>"%>

<%<a class="mention" href="/u/page">@page</a> import =  "java.text.</em>”%>

<%@ taglib uri="/WEB-INF/struts-form.tld" prefix=form %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix=html %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix=bean %>

<html:html locale=“true”>

<%
           
    br.dao.TipoDespesaDao tpDao = new br.dao.TipoDespesaDao();
    java.util.List lista  = tpDao.listar();
    request.setAttribute("lista",lista);
           
    
    %>        
    <title><bean:message key="prompt.Titulo"/></title>        
</head>
<body>
    
    
    <div align="center">
        <div id="body">
            <div id="top">
                <bean:message key="prompt.TituloCadDespesa"/>
            </div>
            <div id="midle">
                <div align="left">
                    <jsp:include page="/Jsp/menu.jsp" flush="false"/>
                </div>      
                <div id="content">
                <html:form action="/caddespesa.do" method="POST">   
                         <table border="1">
                            <tbody>
                                <tr>
                                    <td><bean:message key="prompt.MTipoDespesa"/></td>
                                    <td><select name="txtTipoDespesa">
                                            <c:forEach items="${lista}" var="row">
                                                <option value="${row.cdTipoDespesa}">${row.dsTipoDespesa}</option>
                                            </c:forEach>                  
                                        </select>
                                    </td>
                                </tr>
                                <tr>
                                    <td><bean:message key="prompt.DataDespesa"/></td>
                                    <td><html:text property="txtDataDespesa" size="10" /></td>
                                 </tr>
                                <tr>
                                    <td><bean:message key="prompt.ValorParcela"/></td>
                                    <td><html:text property="txtValorParcela" size="10" /></td>
                                </tr>
                                <tr>
                                    <td><bean:message key="prompt.QuantidadeParcela"/></td>
                                    <td><html:text property="txtQuantidadeParcela" size="10" /></td>
                                </tr>
                                <tr>
                                    <td><bean:message key="prompt.Situacao"/></td>
                                    <td><select name="txtSituacao">
                                            <option value="NAO PAGA">NAO PAGA</option>
                                            <option value="PAGA">PAGA</option>                                                
                                        </select>
                                    </td>
                                </tr>                                    
                                <tr>
                                    <td><html:submit><bean:message key="prompt.Cadastrar"/></html:submit></td>
                                    <td></td>
                                </tr>
                            </tbody>
                        </table>
                   </html:form>
                </div>
            </div>
        </div>
    </div>
</body>

</html:html>

2.CadastrarDespesaAction.java

/*

  • CadastrarDespesaAction.java
  • Created on 13 de Abril de 2008, 14:32
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

package br.actions;

/**
*

  • @author clara
    */
    import java.sql.SQLException;

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 org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionMessages;

import br.dao.DespesaDao;

import br.dao.TipoDespesaDao;

import br.model.Despesa;

import br.model.TipoDespesa;

import br.forms.EditarDespesaForm;

import java.util.Collection;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import <a href="http://java.io">java.io</a>.*;

public class CadastrarDespesaAction extends Action{

public ActionForward execute(ActionMapping mapping,

ActionForm form,

HttpServletRequest req,

HttpServletResponse res) throws ParseException,Exception {

try {

EditarDespesaForm cform     = (EditarDespesaForm) form;

SimpleDateFormat sdf = new SimpleDateFormat(dd/MM/yyyy);

TipoDespesaDao tdDao = new TipoDespesaDao();

Despesa d = new Despesa();

DespesaDao dDao = new DespesaDao();

d.setTipoDespesa(tdDao.pesquisar(Integer.parseInt(cform.gettxtTipoDespesa())));

// try{

d.setDtDespesa(sdf.parse(cform.gettxtDataDespesa()));

//     }catch (ParseException ex) {

//         ex.printStackTrace();

//     }

d.setValor(Double.parseDouble(cform.gettxtValorParcela()));

d.setQtParcelas(Integer.parseInt(cform.gettxtQuantidadeParcela()));

// UsuarioDao u = new UsuarioDao();

// d.setCdUsuario(u.consulta((String)request.getAttribute(“cdUsuario”)));

d.setCdUsuario(1);

d.setDsSituacao(cform.gettxtSituacao());

System.out.println(estou aqui 2);

dDao.salvar(d);

return mapping.findForward(nlistardespesa);

} catch (ParseException ex) {

ex.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

finally {

ActionMessages messages  = new ActionMessages();

messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(errors.sqlerror));

saveMessages(req, messages);

return mapping.findForward(excecoes);}

}

}

3.EditarDespesaForm.java

/*

  • EditarDespesaForm.java
  • Created on 13 de Abril de 2008, 14:40
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    */

package br.clara.forms;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

public class EditarDespesaForm extends ActionForm{
private static final long serialVersionUID = 1L;   
 private String txtTipoDespesa;   
 private String txtObservacao;  
 private String txtDataDespesa;  
 private String txtValorParcela;
 private String txtQuantidadeParcela;
 private String txtSituacao;
 public String gettxtTipoDespesa() {
    return txtTipoDespesa;
}

 public void settxtTipoDespesa(String txtTipoDespesa) {
    this.txtTipoDespesa = txtTipoDespesa;
}
 public String gettxtDataDespesa() {
    return txtObservacao;
}
 public void settxtDataDespesa(String txtObservacao) {
    this.txtObservacao = txtObservacao;
}
  public String gettxtValorParcela() {
    return txtObservacao;
}
 public void settxtValorParcela(String txtObservacao) {
    this.txtObservacao = txtObservacao;
}
public String gettxtQuantidadeParcela() {
    return txtObservacao;
}
public void settxtQuantidadeParcela(String txtObservacao) {
    this.txtObservacao = txtObservacao;
}
public String gettxtSituacao() {
    return txtObservacao;
}
public void settxtSituacao(String txtObservacao) {
    this.txtObservacao = txtObservacao;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
     txtTipoDespesa="";   
     txtDataDespesa="";  
     txtValorParcela="";
     txtQuantidadeParcela="";
     txtSituacao="";
}
public ActionErrors validate(ActionMapping mapping,

HttpServletRequest request) {

ActionErrors erros = new ActionErrors();

if (txtTipoDespesa == null || txtTipoDespesa.trim().equals("")) {

erros.add(txtTipoDespesa”, new ActionMessage(errors.emptytxtTipoDespesa));

}
if (txtDataDespesa == null || txtDataDespesa.trim().equals("")) {
		erros.add("txtDataDespesa", new ActionMessage("errors.emptytxtDataDespesa"));
	}
            if (txtValorParcela == null || txtValorParcela.trim().equals("")) {
		erros.add("txtValorParcela", new ActionMessage("errors.emptytxtValorParcela"));
	}
            if (txtQuantidadeParcela == null || txtQuantidadeParcela.trim().equals("")) {
		erros.add("txtQuantidadeParcela", new ActionMessage("errors.emptytxtQuantidadeParcela"));
	}
            if (txtSituacao == null || txtSituacao.trim().equals("")) {
		erros.add("txtSituacao", new ActionMessage("errors.emptytxtSituacao"));
	}
	return erros;
}

}

4.struts-config.xml



1 Resposta

Zakim

ola!

primeiramente, coloque isso dentro das tags code (no menu superior…)

O Struts é um Framework MVC, acredito que vc deve ler um pouquinho mais sobre ele e sobre como funciona suas requisições a partir do trabalho em camadas.

Esqueça os scripts no html e carregue todos para suas devidas actions…

:stuck_out_tongue:

Criado 14 de abril de 2008
Ultima resposta 14 de abr. de 2008
Respostas 1
Participantes 2