[struts] refresh sem perder valores

pessoal… estou com um problema na hora que eu faço uma validação!

é o seguinte…

eu faço algumas validações na minha action que dependendo da validação não permite que o usuário passe para a proxima etapa…
nesse caso… eu gostaria que os campos que ele preenche não fossem perdidos… ou seja… ao efetuar o refresh… gostaria que os campos voltassem do jeito que estava qnd o usuario clicou no botão!!

Struts 1.x ou 2.x?

2.x

Vc está usando as tags do struts?
<s:textLabel …?
Você tem q lembrar q a cada request uma nova action é criada. Se você estiver dando um novo request vc realmente perde esse valores, mas se so atualizar os valores permanecem.

Eu estou com um problema parecido pra resolver, pra não perder esses valores. No seu caso acho q resolve implementar a interface SessionAware.
Daí vc vai usar um map na sua action que conterá os atributos, tipo assim:

class HelloAction extends ActionSupport implementes SessionAware{
Map map;
}

No jsp vc faz normalmente como está fazendo, mas se vc debugar, vc vai perceber, q os valores estão sendo gravados num map.
Por exemplo vc tem nome e idade no jsp.
Quando vc der o submit, o sistema fará isso:

map.put("nome", nomeDigitadoNoJsp);
map.put("idade", idadeDigitadaNoJsp);

E o sessionAware faz vc implementar o setSession(Map).
Aew vc seta esse map na sessão. Portanto vc nao perde os valores a cada request.

Eu estou com um problema aqui parecido quando for uma lista de Objects que eu preciso trabalhar com várias ações no meu jsp, mas eu não posso perdê-la. E eu não quero setar na sessão. ehhe…
Abraço.

eu naum estava usando as tags do struts naum!..

mas agora ele naum limpa mais os campos… rsrs… nem que eu queira!! rsrs…

o meu problema inverteu! hahaha!

Se ele não está limpando é pq ele não criou uma nova request. :slight_smile:
Se vc quiser que limpe.
Sobreescreva o método prepare.
Para isso vc precisa implementar a interface Preparable e adicionar o inteceptor na sua action.

Aew no prepare vc faz sua regra pra limpar os campos ou não.

Vou almoçar.
flws.