Pessoal,
Tenho uma pagina JSP que exibe uma tabela com iterate, nessa tabela tenho colunas que não são editáveis e outras que são, as que são editáveis eu carrego com valores default, quero que quando submeter esse JSP consiga recuperar os valores setados na tabela que deverão estar em uma collection.
Minha dúvida é como faço, para passar para a collection os valores que foram setados nos campos editavéis do iterate?
Quando eu submeto o JSP só esta vindo os valores anteriores (default).
Minha segunda dúvida é: No action que vai ser chamado, como faço para pegar essa collection e percorrer os valores dela? Que eu uso para isso? request? session?
Se tiverem exemplos, favor coloquem que me ajudará bastante.
Vou colocar a tela, para terem uma idéia.
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html>
<head>
<html:base />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>SISFAB - Sistema de Gestão de Fábrica</title>
<link href="../css/paginas.css" rel="stylesheet" type="text/css">
<SCRIPT>
<!--
function enviar(acao)
{
alert(acao);
document.forms[0].acao.value = acao;
document.forms[0].submit();
}
//-->
</SCRIPT>
</head>
<body>
<html:form action="/gerarOrcamento" focus="tipos">
<input type="hidden" name="acao" />
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td height="40" align="left" bgcolor="#999966"><p align="right" class="style1">Gerar Orçamento</p>
</td>
</tr>
<tr>
<td align="center" bgcolor="#415869">
<div align="left">
<%--<script language="JavaScript" type="text/javascript" src="../js/menu.js">
</script>--%>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="873"> </td>
</tr>
</table>
<br>
<p> <span class="style4">Cliente</span></p>
<table width="100%">
<tr>
<td width="26%"><span class="style2">Número: <bean:write name="oOrcamentos" property="numero" /> </span></td>
<td width="74%"><span class="style2">Nome: <bean:write name="oOrcamentos" property="nome" /> </span>
</td>
</tr>
</table>
<p><span class="style4"><br>
Orçamento</span></p>
<table width="100%">
<tr>
<td width="53%" valign="top"><span class="style2">Código: </span>
</td>
<td width="61%" valign="top"><span class="style2">Tipo Orçamento
<logic:present name="oTipos">
<html:select property="tipos" >
<html:options property="tipos" />
</html:select>
</logic:present></span>
</td>
</tr>
<tr>
<td width="53%"><span class="style2">Data de emissão: <html:text name="oOrcamentos" property="dataemissao" tabindex="2" size="10" maxlength="10"/></span>
</td>
<td width="61%"><span class="style2">Referência <html:text tabindex="3" size="49" maxlength="49" property="referencia"/></span>
</td>
</tr>
<tr>
<td><span class="style2">Prazo de Entrega <html:text tabindex="4" size="49" maxlength="49" property="prazoentrega"/></span>
</td>
<td><span class="style2">Condição de Pagto <html:text tabindex="5" size="49" maxlength="49" property="condicaopagto"/></span>
</td>
</tr>
<tr>
<td><span class="style2">Condição de Entrega
<logic:present name="oEntregas">
<html:select property="condicaoentrega" >
<html:options property="condicaoentrega" />
</html:select>
</logic:present></span>
</td>
<td><span class="style2">Validade <html:text tabindex="6" size="10" maxlength="10" property="validade"/></span>
</td>
</tr>
</table>
<p class="style4">Itens do Orçamento </p>
<table width="100%" border="1">
<tr align="center" bgcolor="#999966" class="style2">
<td width="2%"><span class="style3"></span></td>
<td width="7%"><span class="style3"><strong>Modelo</strong></span></td>
<td width="33%"><span class="style3"><strong>Equipamento</strong></span></td>
<td width="5%"><span class="style3"><strong>Quant.</strong></span></td>
<td width="13%"><span class="style3"><strong>Preço Unitário</strong></span></td>
<td width="9%"><span class="style3"><strong>Imposto (%)</strong></td>
<td width="11%"><span class="style3"><strong>Prazo de Entrega (dias)</strong></span></td>
<td width="20%"><span class="style3"><strong>Serviço Executado</strong></span></td>
</tr>
<logic:present name="oEquipamentos" >
<logic:iterate name="oEquipamentos" id="equipamento">
<tr>
<td width="2%"><span class="style7"></span>
<%--<html:checkbox name="equipamento" property="selecionado" />--%>
<html:multibox property="marcados">
<bean:write name="equipamento" property="modelo" />
</html:multibox>
</td>
<td width="7%"><span class="style7"><bean:write name="equipamento" property="modelo" /></span></td>
<td width="33%"><span class="style7"><bean:write name="equipamento" property="nome" /></span></td>
<td align="center" width="5%"><span class="style7"><html:text name="equipamento" property="quantidade" size="5" maxlength="5" /></span></td>
<td align="center" width="13%"><span class="style7"><html:text name="equipamento" property="preco" /></span></td>
<td align="center" width="9%"><span class="style7"><html:text name="equipamento" property="imposto" size="5" maxlength="5" /></span></td>
<td align="center" width="11%"><span class="style7"><bean:write name="equipamento" property="diasfabicacao" /></span></td>
<td align="center" width="20%"><span class="style7"><html:text name="equipamento" property="servicoexecutado" size="20" maxlength="20" /></span></td>
</tr>
</logic:iterate> </logic:present>
</table>
<div align="right">
<br></br>
</div>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="32%">
<input name="btnImprimir" type="submit" id="btnImprimir" value="Imprimir">
<input name="btnLimpar" type="reset" id="btnLimpar" value="Limpar"></td>
<INPUT type=button value="Consolidar Orçamento" onClick="enviar('consolidarOrcamento')">
<td width="27%"><div align="right"><span class="style2">Desconto </span>
<input type="text" name="textfield">
<span class="style2">%</span> </div></td>
<td width="41%"><div align="right"><span class="style2">Total do Orçamento </span>
<input type="text" name="textfield">
</div></td>
</tr>
</table>
</html:form>
</body>
</html:html>
/*
* Created on 07/08/2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package br.com.escher.sisfab.orcamento.presentation;
import java.util.Collection;
import org.apache.struts.action.ActionForm;
/**
* @author Roberto Escher
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class OrcamentoActionForm extends ActionForm {
private Integer numero = null;
private String nome = null;
private Long numeroorc = null;
private String[] tipos = {"Conserto","Fornecimento"};
private String dataemissao = null;
private String referencia = null;
private String prazoentrega = null;
private String condicaopagto = null;
private String[] condicaoentrega = {"FOB- Fábrica: ESCHER / RJ", "FOT- Fábrica: ESCHER / RJ"};
private Integer validade = null;
private Collection equipamentos = null;
private String[] marcados = null;
public String[] getMarcados() {
return marcados;
}
public void setMarcados(String[] marcados) {
this.marcados = marcados;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Integer getNumero() {
return numero;
}
public void setNumero(Integer numero) {
this.numero = numero;
}
public Long getNumeroorc() {
return numeroorc;
}
public void setNumeroorc(Long numeroorc) {
this.numeroorc = numeroorc;
}
public String[] getTipos() {
return tipos;
}
public void setTipos(String[] tipos) {
this.tipos = tipos;
}
public String[] getCondicaoentrega() {
return condicaoentrega;
}
public void setCondicaoentrega(String[] condicaoentrega) {
this.condicaoentrega = condicaoentrega;
}
public String getCondicaopagto() {
return condicaopagto;
}
public void setCondicaopagto(String condicaopagto) {
this.condicaopagto = condicaopagto;
}
public String getDataemissao() {
return dataemissao;
}
public void setDataemissao(String dataemissao) {
this.dataemissao = dataemissao;
}
public String getPrazoentrega() {
return prazoentrega;
}
public void setPrazoentrega(String prazoentrega) {
this.prazoentrega = prazoentrega;
}
public String getReferencia() {
return referencia;
}
public void setReferencia(String referencia) {
this.referencia = referencia;
}
public Integer getValidade() {
return validade;
}
public void setValidade(Integer validade) {
this.validade = validade;
}
public Collection getEquipamentos() {
return equipamentos;
}
public void setEquipamentos(Collection equipamentos) {
this.equipamentos = equipamentos;
}
}
/*
* Created on 07/08/2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package br.com.escher.sisfab.orcamento.presentation;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import br.com.escher.sisfab.application.presentation.SisfabDispatchAction;
import br.com.escher.sisfab.business.OrcamentoBusiness;
import br.com.escher.sisfab.datamodel.persistence.OrcamentoTO;
/**
* @author Roberto Escher
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class OrcamentoAction extends SisfabDispatchAction {
public ActionForward gerarOrcamento(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
OrcamentoActionForm oOrcamentoActionForm = (OrcamentoActionForm) form;
//OrcamentoTO oOrcamento = oOrcamentoActionForm.getOrcamentoTO();
OrcamentoTO oOrcamento = new OrcamentoTO();
OrcamentoBusiness oOrcamentoDelegate = new OrcamentoBusiness();
try {
oOrcamento.setNumero(oOrcamentoActionForm.getNumero());
oOrcamento = oOrcamentoDelegate.inicializaOrcamento(oOrcamento);
oOrcamentoActionForm.setTipos(oOrcamento.getTipos());
oOrcamentoActionForm.setEquipamentos(oOrcamento.getEquipamentos());
oOrcamentoActionForm.setCondicaoentrega(oOrcamento.getCondicaoentrega());
request.setAttribute("oOrcamentos", oOrcamentoActionForm);
request.setAttribute("oTipos", oOrcamentoActionForm.getTipos());
request.setAttribute("oEntregas", oOrcamentoActionForm.getCondicaoentrega());
request.setAttribute("oEquipamentos", oOrcamentoActionForm.getEquipamentos());
} catch (Exception e) {
return mapping.findForward(super.FORWARD_ERRO);
}
return mapping.findForward(super.FORWARD_GERAR_ORCAMENTO);
}
public ActionForward consolidarOrcamento(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
OrcamentoActionForm oOrcamentoActionForm = (OrcamentoActionForm) form;
// Estou perdido nesse ponto se puder me ajudar
//OrcamentoTO oOrcamento = oOrcamentoActionForm.getOrcamentoTO();
//OrcamentoBusiness oOrcamentoDelegate = new OrcamentoBusiness();
try {
//UserContext user = (UserContext) request.getSession().getAttribute(UserContext.class.getName());
//Collection aEquipamento = user.getEquipamento();
//Collection aEquipamento = request.getAttribute(aEquipamento);
request.setAttribute("oOrcamentos", oOrcamentoActionForm);
request.setAttribute("oTipos", oOrcamentoActionForm.getTipos());
request.setAttribute("oEntregas", oOrcamentoActionForm.getCondicaoentrega());
request.setAttribute("oEquipamentos",oOrcamentoActionForm.getEquipamentos());
} catch (Exception e) {
return mapping.findForward(super.FORWARD_ERRO);
}
return mapping.findForward(super.FORWARD_CONSOLIDAR_ORCAMENTO);
}
}