Galera,
tenho um formuário que a quantidade de texts é dinâmica. Estes itens serão inseridos para dentro de um Set no controlador. Eis a questão o que estou fazendo de errado que o meu set não está sendo populado pelo formulário.
Segue o código:
Formulário
<%@include file="import.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="pt-br" xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Questionário RCBP</title>
<s:head theme="ajax" />
<link rel="stylesheet" href="css/vig_v3.css" type="text/css" />
</head>
<body>
<div id="barrabrasil"><a href="http://www.saude.gov.br" target="_blank"><img src="http://www.inca.gov.br/imagens/home/logo_saud2peq.gif" alt="Ministério da Saúde" width="155" height="21" style="float:left;" /></a><a href="http://www.brasil.gov.br" target="_blank"><img src="http://www.inca.gov.br/imagens/home/brasil2.gif" alt="Brasil, um país de todos" width="74" height="21" style="float:right;" /></a></div>
<div id="main">
<img src="imagens/header_rcbp.jpg" alt="Registros de Câncer de Base Populacional - INCA" />
<%@include file="menu.jsp"%>
<div id="conteudo">
<img src="imagens/tit_question.gif" alt="Registros de Câncer de Base Populacional" />
<div class="bluebox">
<fieldset>
<legend>Questionário RCBP - parte 01</legend>
<s:form method="post" action="salvarQuestionario1!salvar">
<s:textarea name="questionario.abrangenciaPopulacao" label="Municípios" value="%{questionario.abrangenciaPopulacao}" cols="60" rows="5" labelposition="top" />
<s:select name="questionario.anoImplantacao" list="anos" label="Ano de início das operações RCBP" value="%{questionario.anoImplantacao}" cssStyle="width:70px;" labelposition="top" />
<s:select name="questionario.anoInicioColeta" list="anos" label="Ano início coleta de dados" value="%{questionario.anoInicioColeta}" cssStyle="width:70px;" labelposition="top" />
<s:textfield name="questionario.orgaoResponsavelOrganograma" label="Órgão responsável pelo registro e inserção institucional no organograma" value="%{questionario.orgaoResponsavelOrganograma}" size="50" labelposition="top" />
<tr>
<td colspan="2">InfraEstrutura Física</td>
</tr>
<tr>
<td colspan="2">
<table cellpadding="0" cellspacing="2" class="tabela">
<thead>
<tr>
<td>Itens</td>
<td>Quantidade</td>
</tr>
</thead>
<tbody>
<s:iterator value="infraEstruturas" status="stat">
<s:textfield name="questionario.infraEstruturas['%{#stat.index}'].qtdItem" id="questionario.infraEstruturas['%{#stat.index}'].qtdItem" label="%{descInfraEstrutura}" value="%{questionario.infraEstruturas['%{#stat.index}'].qtdItem}" size="10"/>
</s:iterator>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan="2">Quadro de Pessoal Técnico-Administrativo</td>
</tr>
<tr>
<td colspan="2">
<table cellpadding="0" cellspacing="2" class="tabela">
<thead>
<tr>
<td>Profissionais</td>
<td>Com Capacitação em RCBP</td>
<td>Sem Capacitação em RCBP</td>
</tr>
</thead>
<tbody>
<s:iterator value="profissionalFuncoes" status="stat">
<tr>
<td><s:property value="descFuncaoProfissional" /></td>
<td><input type="text" name="item" /> </td>
<td><input type="text" name="item" /> </td>
</tr>
</s:iterator>
</tbody>
</table>
</td>
</tr>
<s:submit value="Avançar" name="redirect-action:prepararCategoria!preparar" />
<s:submit value="Salvar Rascunho" />
</s:form>
</fieldset>
</div>
</div>
<%@include file="rodape.jsp"%>
</div>
</body>
</html>
Action:
package br.gov.inca.rcbp.action;
import java.util.ArrayList;
import java.util.Date;
import org.apache.log4j.Logger;
import br.gov.inca.publico.bean.ItenInfraEstrutura;
import br.gov.inca.publico.bean.ProfissionalFuncao;
import br.gov.inca.publico.dao.Dao;
import br.gov.inca.rcbp.bean.InfraEstruturaRCBP;
import br.gov.inca.rcbp.bean.QuestionarioRCBP;
import br.gov.inca.rcbp.bean.RCBP;
import br.gov.inca.rcbp.bean.StatusQuestionario;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;
@SuppressWarnings("serial")
public class Questionario1SalvarAction extends ActionSupport implements
Preparable {
private QuestionarioRCBP questionario;
private String mensagem;
private ArrayList<String> anos = new ArrayList<String>();
private static Logger log = Logger.getLogger(Questionario1BuscarAction.class);
private ArrayList<ItenInfraEstrutura> infraEstruturas = new ArrayList<ItenInfraEstrutura>();
private ArrayList<ProfissionalFuncao> profissionalFuncoes;
private ArrayList<InfraEstruturaRCBP> infraEstruturasRCBP = new ArrayList<InfraEstruturaRCBP>();
public ArrayList<InfraEstruturaRCBP> getInfraEstruturasRCBP() {
return infraEstruturasRCBP;
}
public void setInfraEstruturasRCBP(
ArrayList<InfraEstruturaRCBP> infraEstruturasRCBP) {
this.infraEstruturasRCBP = infraEstruturasRCBP;
}
public QuestionarioRCBP getQuestionarioRCBP() {
return questionario;
}
public void setQuestionarioRCBP(QuestionarioRCBP questionario) {
this.questionario = questionario;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public QuestionarioRCBP getQuestionario() {
return questionario;
}
public void setQuestionario(QuestionarioRCBP questionario) {
this.questionario = questionario;
}
public ArrayList<String> getAnos() {
return anos;
}
public void setAnos(ArrayList<String> anos) {
this.anos = anos;
}
public ArrayList<ProfissionalFuncao> getProfissionalFuncoes() {
return profissionalFuncoes;
}
public void setProfissionalFuncoes(
ArrayList<ProfissionalFuncao> profissionalFuncoes) {
this.profissionalFuncoes = profissionalFuncoes;
}
public ArrayList<ItenInfraEstrutura> getInfraEstruturas() {
return infraEstruturas;
}
public void setInfraEstruturas(ArrayList<ItenInfraEstrutura> infraEstruturas) {
this.infraEstruturas = infraEstruturas;
}
public String salvar() {
Dao<QuestionarioRCBP> daoQuestionario = new Dao<QuestionarioRCBP>();
try {
this.questionario.setSituacaoQuestionario(StatusQuestionario.RASCUNHO);
// teste
RCBP rcbp = new RCBP();
rcbp.setIdInstituicao(550);
this.questionario.setRcbp(rcbp);
this.questionario.setQualEstudoSobrevida("");
// fim teste
daoQuestionario.inserirAtualizar(this.questionario);
this.mensagem = "Rascunho salvo com sucesso!";
} catch (Exception e) {
log.fatal(e.getMessage());
}
return SUCCESS;
}
public void prepare() throws Exception {
this.carregaAnos();
this.carregaInfraEstrutura();
this.carregaQuadroPessoal();
}
@SuppressWarnings("deprecation")
public void carregaAnos() {
Date date = new Date();
for (int i = 1990; i <= (date.getYear() + 1900); i++) {
String ano = Integer.toString(i);
this.anos.add(ano);
}
}
public void carregaInfraEstrutura() {
Dao<ItenInfraEstrutura> daoItenInfra = new Dao<ItenInfraEstrutura>();
try {
this.infraEstruturas = (ArrayList<ItenInfraEstrutura>) daoItenInfra
.listar(new ItenInfraEstrutura());
} catch (Exception e) {
log.info(e.getMessage());
}
}
public void carregaQuadroPessoal() {
Dao<ProfissionalFuncao> daoPessoal = new Dao<ProfissionalFuncao>();
try {
this.profissionalFuncoes = (ArrayList<ProfissionalFuncao>) daoPessoal
.listar(new ProfissionalFuncao());
} catch (Exception e) {
log.info(e.getMessage());
}
}
}
bean:
package br.gov.inca.rcbp.bean;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import br.gov.inca.publico.bean.TipoFlag;
@Entity
@Table(name = "rcbp_questionario", schema = "rcbp")
@SequenceGenerator(name = "SEQUENCE", sequenceName = "rcbp.rcbp_questionario_id_questionario_rcbp_seq")
public class QuestionarioRCBP {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUENCE")
@Column(name = "id_questionario_rcbp")
private int idQuestionarioRCBP;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_instituicao")
private RCBP rcbp;
@OneToMany(mappedBy = "questionario", cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
private Set<InfraEstruturaRCBP> infraEstruturas = new HashSet<InfraEstruturaRCBP>();
@OneToMany(mappedBy = "questionario", cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
private Set<QuadroDePessoal> quadroDePessoal = new HashSet<QuadroDePessoal>();
@Column(name = "ds_abrangencia_populacao")
private String abrangenciaPopulacao;
@Column(name = "aa_implantacao")
private String anoImplantacao;
@Column(name = "aa_inicio_coleta")
private String anoInicioColeta;
@Column(name = "nm_orgao_responsavel_organograma")
private String orgaoResponsavelOrganograma;
@Column(name = "fg_utiliza_sisbasepop_inca")
private String utilizaSisbasepopInca = TipoFlag.NAO;
@Column(name = "ds_versao_sisbasepop_inca")
private String versaoSisbasepopInca;
@Column(name = "fg_consulta_comissao_assessora")
private String consultaComissaoAcessoria = TipoFlag.NAO;
@Column(name = "fg_gerencia_recurso_ppi")
private String gerenciaRecursoPPI = TipoFlag.NAO;
@Column(name = "fg_gerencia_recursos_pav")
private String gerenciaRecursoPAV = TipoFlag.NAO;
@Column(name = "ds_periodo_enviado_iarc")
private String periodoEnviadoIARC;
@Column(name = "fg_consulta_banco_sim")
private String consultaBancoSIM = TipoFlag.NAO;
@Column(name = "fg_consulta_banco_apac")
private String consultaBancoAPAC = TipoFlag.NAO;
@Column(name = "fg_faz_seguimento")
private String fazSeguimento = TipoFlag.NAO;
@Column(name = "fg_participa_estudo_sobrevida")
private String participalEstudoSobrevida = TipoFlag.NAO;
@Column(name = "ds_qual_estudo_sobrevida")
private String qualEstudoSobrevida;
@Column(name = "fg_retorna_informacoes_sim")
private String retornaInformacoesSIM = TipoFlag.NAO;
@Column(name = "fg_vigilancia_dant")
private String vigilanciaDANT = TipoFlag.NAO;
@Column(name = "fg_regulacao_rao")
private String regulacaoRAO = TipoFlag.NAO;
@Column(name = "fg_controle_colo_mama")
private String controleColoMama = TipoFlag.NAO;
@Column(name = "ds_outra_atividade")
private String outraAtividade;
@Column(name = "fg_perfil_incidencia")
private String perfilIncidencia = TipoFlag.NAO;
@Column(name = "fg_analise_espacial_incidencia")
private String analiseEspecialIncidencia = TipoFlag.NAO;
@Column(name = "fg_relatorios_fontes_notificadoras")
private String relatoriosFontesNotificadoras = TipoFlag.NAO;
@Column(name = "dt_preenchimento")
private Date dataPreenchimento;
@Column(name = "st_questionario")
private String situacaoQuestionario;
public String getAbrangenciaPopulacao() {
return abrangenciaPopulacao;
}
public void setAbrangenciaPopulacao(String abrangenciaPopulacao) {
this.abrangenciaPopulacao = abrangenciaPopulacao;
}
public String getAnaliseEspecialIncidencia() {
return analiseEspecialIncidencia;
}
public void setAnaliseEspecialIncidencia(String analiseEspecialIncidencia) {
this.analiseEspecialIncidencia = analiseEspecialIncidencia;
}
public String getAnoImplantacao() {
return anoImplantacao;
}
public void setAnoImplantacao(String anoImplantacao) {
this.anoImplantacao = anoImplantacao;
}
public String getAnoInicioColeta() {
return anoInicioColeta;
}
public void setAnoInicioColeta(String anoInicioColeta) {
this.anoInicioColeta = anoInicioColeta;
}
public String getConsultaBancoAPAC() {
return consultaBancoAPAC;
}
public void setConsultaBancoAPAC(String consultaBancoAPAC) {
this.consultaBancoAPAC = consultaBancoAPAC;
}
public String getConsultaBancoSIM() {
return consultaBancoSIM;
}
public void setConsultaBancoSIM(String consultaBancoSIM) {
this.consultaBancoSIM = consultaBancoSIM;
}
public String getConsultaComissaoAcessoria() {
return consultaComissaoAcessoria;
}
public void setConsultaComissaoAcessoria(String consultaComissaoAcessoria) {
this.consultaComissaoAcessoria = consultaComissaoAcessoria;
}
public String getControleColoMama() {
return controleColoMama;
}
public void setControleColoMama(String controleColoMama) {
this.controleColoMama = controleColoMama;
}
public Date getDataPreenchimento() {
return dataPreenchimento;
}
public void setDataPreenchimento(Date dataPreenchimento) {
this.dataPreenchimento = dataPreenchimento;
}
public String getFazSeguimento() {
return fazSeguimento;
}
public void setFazSeguimento(String fazSeguimento) {
this.fazSeguimento = fazSeguimento;
}
public String getGerenciaRecursoPAV() {
return gerenciaRecursoPAV;
}
public void setGerenciaRecursoPAV(String gerenciaRecursoPAV) {
this.gerenciaRecursoPAV = gerenciaRecursoPAV;
}
public String getGerenciaRecursoPPI() {
return gerenciaRecursoPPI;
}
public void setGerenciaRecursoPPI(String gerenciaRecursoPPI) {
this.gerenciaRecursoPPI = gerenciaRecursoPPI;
}
public int getIdQuestionarioRCBP() {
return idQuestionarioRCBP;
}
public void setIdQuestionarioRCBP(int idQuestionarioRCBP) {
this.idQuestionarioRCBP = idQuestionarioRCBP;
}
public Set<InfraEstruturaRCBP> getInfraEstruturas() {
return infraEstruturas;
}
public void setInfraEstruturas(Set<InfraEstruturaRCBP> infraEstruturas) {
this.infraEstruturas = infraEstruturas;
}
public String getOrgaoResponsavelOrganograma() {
return orgaoResponsavelOrganograma;
}
public void setOrgaoResponsavelOrganograma(String orgaoResponsavelOrganograma) {
this.orgaoResponsavelOrganograma = orgaoResponsavelOrganograma;
}
public String getOutraAtividade() {
return outraAtividade;
}
public void setOutraAtividade(String outraAtividade) {
this.outraAtividade = outraAtividade;
}
public String getParticipalEstudoSobrevida() {
return participalEstudoSobrevida;
}
public void setParticipalEstudoSobrevida(String participalEstudoSobrevida) {
this.participalEstudoSobrevida = participalEstudoSobrevida;
}
public String getPerfilIncidencia() {
return perfilIncidencia;
}
public void setPerfilIncidencia(String perfilIncidencia) {
this.perfilIncidencia = perfilIncidencia;
}
public String getPeriodoEnviadoIARC() {
return periodoEnviadoIARC;
}
public void setPeriodoEnviadoIARC(String periodoEnviadoIARC) {
this.periodoEnviadoIARC = periodoEnviadoIARC;
}
public Set<QuadroDePessoal> getQuadroDePessoal() {
return quadroDePessoal;
}
public void setQuadroDePessoal(Set<QuadroDePessoal> quadroDePessoal) {
this.quadroDePessoal = quadroDePessoal;
}
public String getQualEstudoSobrevida() {
return qualEstudoSobrevida;
}
public void setQualEstudoSobrevida(String qualEstudoSobrevida) {
this.qualEstudoSobrevida = qualEstudoSobrevida;
}
public RCBP getRcbp() {
return rcbp;
}
public void setRcbp(RCBP rcbp) {
this.rcbp = rcbp;
}
public String getRegulacaoRAO() {
return regulacaoRAO;
}
public void setRegulacaoRAO(String regulacaoRAO) {
this.regulacaoRAO = regulacaoRAO;
}
public String getRelatoriosFontesNotificadoras() {
return relatoriosFontesNotificadoras;
}
public void setRelatoriosFontesNotificadoras(
String relatoriosFontesNotificadoras) {
this.relatoriosFontesNotificadoras = relatoriosFontesNotificadoras;
}
public String isRetornaInformacoesSIM() {
return retornaInformacoesSIM;
}
public void setRetornaInformacoesSIM(String retornaInformacoesSIM) {
this.retornaInformacoesSIM = retornaInformacoesSIM;
}
public String getSituacaoQuestionario() {
return situacaoQuestionario;
}
public void setSituacaoQuestionario(String situacaoQuestionario) {
this.situacaoQuestionario = situacaoQuestionario;
}
public String getUtilizaSisbasepopInca() {
return utilizaSisbasepopInca;
}
public void setUtilizaSisbasepopInca(String utilizaSisbasepopInca) {
this.utilizaSisbasepopInca = utilizaSisbasepopInca;
}
public String getVersaoSisbasepopInca() {
return versaoSisbasepopInca;
}
public void setVersaoSisbasepopInca(String versaoSisbasepopInca) {
this.versaoSisbasepopInca = versaoSisbasepopInca;
}
public String getVigilanciaDANT() {
return vigilanciaDANT;
}
public void setVigilanciaDANT(String vigilanciaDANT) {
this.vigilanciaDANT = vigilanciaDANT;
}
/*
* private Set coordenadores = new HashSet();
*
* private Set situacoesAtuaisBase = new HashSet();
*/
}