Struts: perdendo valores do form ao dar forward

5 respostas
D

Estou usando o struts.
Dou forward para uma outra Action e perdendo os valores que setei no form da Action anterior. Lembrando que ambas as actions utilizam o mesmo form. Como resolver isso?

5 Respostas

E

Seu scope="?" dentro do struts config-xml onde vc mapea as suas action . Esta como request ou session !?

D

Está como request. Qual é a melhor solução? Mudar o escopo para session?

E

Cara já que vc esta utilizando o mesmo formulario não era para isso estar acontecendo . Tem como postar o trecho do codigo para dar uma olhada ?

D

PRIMEIRA ACTION
- faz algumas alterações no form
- dá forward para próxima action

if(fcvTanqueVO.possuiId()){
			fcvTanqueServices.atualiza(fcvTanqueVO);	
		} else {
			fcvTanqueVO.setTanqueCod(fcvTanqueServices.buscaProximoCodTanque(fcvTanqueVO.getPostoId()));
			id = fcvTanqueServices.insere(fcvTanqueVO);
			fcvTanqueForm.set("idAsString", Integer.toString(id));
			fcvTanqueForm.set("tanqueCodAsString", fcvTanqueVO.getTanqueCodAsString());
		}
		ActionMessages messages = new ActionMessages();
		messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("registro.incluido.sucesso"));
		saveMessages(request, messages);
		return mapping.findForward("recarregarCadastroTanque");

SEGUNDA ACTION

try{
		
		con=FactoryBD.getInstancia().criaGerenteConexao().obtemConexao();
		
		FcvTpCombustivelServices fcvTpCombServices=FactoryServices.getInstancia().criaFcvTpCombustivelServices(con);
		
		combustiveis = fcvTpCombServices.buscaTpCombustivel();

		combustiveisForm.set("tiposCombustiveis", combustiveis);
		
		return mapping.findForward("carregarCadastroTanque");

STRUTS-CONFIG:
PRIMEIRA ACTION:
<action
path="/cadastraTanque"
type=“br.com.formatool.fcv.fcvTanque.web.CadastraFcvTanqueAction”
name=“FcvTanqueForm”
scope=“request”
validate=“true”
input="/fcvTanque/fcvCadastroTanque.jsp"
/>

FORWARD:
&lt;forward name="recarregarCadastroTanque" path="/carregarCadastroTanque.do" /&gt;


SEGUNDA ACTION:
	CARREGA POP-UP ANTES DE JSP
&lt;action 
path="/carregarCadastroTanque"
type="br.com.formatool.fcv.fcvTanque.web.CarregarFcvTanqueAction"
name="FcvTanqueForm"
scope="request" validate="false" 
parameter="/fcvTanque/fcvCadastroTanque.jsp"
 /&gt;


FORWARD ANTES DO JSP:
&lt;forward name="carregarCadastroTanque" path="/fcvTanque/fcvCadastroTanque.jsp" /&gt;
E

Já experimentou fazer isto !?

Action b chamando a Action A novamente !

 return mapping.findForward&#40;"carregarCadastroTanque"&#41;; 

&lt;forward name="carregarCadastroTanque"path="/carregarCadastroTanque.do" /&gt;
Criado 30 de agosto de 2006
Ultima resposta 30 de ago. de 2006
Respostas 5
Participantes 2