Olá a todos!
Utilizo struts 2 com validator. Tenho uma página jsp que possui uma combobox que recebe dados de uma uma list gerada na classe action.
Até aí tudo bem… A página carrega normalmente. O problema ocorre quando o conteúdo submit não é validado no validator. O processo é paralisado pelo validator e a list não é gerada…
A única forma que funcionou foi colocando a lista no método contrutor (nada elegante).
Em resumo, acho que preciso uma forma de executar um método da action mesmo quando o conteúdo não é validado.
Alguma dica?
[]s
Eae Bacamarte, td em riba?
Velho, no Struts 2, “uma boa pratica” é vc sempre garantir que suas variáveis de instância da sua action sejam inicializadas sempre. Ta acontecendo o seguinte velho, quando vc “chama” a pagina pela primeira vez, o seu contrutor é chamado e sua lista é populada. Porém, quando a validação falha, o seu ‘objeto’ action não é criado novamente, e infelizmente a cada requisição os valores das variáveis se perdem.
Para resolver seu problema faça o seguinte:
public class YourAction implements Preparable {
public List<String> yourist;
public YourAction(){
}
public void prepare() throws Exception{
//initialize your list here
}
}
Implementando a interface Preparable, o metodo prepare() SEMPRE vai ser chamado antes de sua pagina ser renderizada, e assim vc pode mandar seus atributos sempre consistentes.
Espero que tenha ajudado.
Caro Rodrigo!!! Muito obrigado mesmo!!! Já estava a mais de um dia batendo a cabeça com esse problema.
Apenas para deixar registrado no tópico, incluir a linha abaixo na configuração do interceptor:
Grande Abraço