Result.redirect/forward com parâmetros?

8 respostas
doravan

Amigos, solicito ajuda.
Tenho uma página de detalhes de processos que chama uma página em um lightbox para cadastro de eventos.

Só que, quando concluo o cadastro do detalhe no lightbox, o lightbox deveria OU atualizar a página principal OU redirecionar para o mesmo detalhe enviando o id do processo como parâmetro para poder permitir novos cadastros.

A lógica da página de detalhes é essa:

@Path("/processosDetalhes")
	public Processos detalhesprocesso(Long id){	
		Processos processoId = processosDao.carrega(id);
		List<Eventos> bsProcId = eventosDao.loadByProcessoId(id);
		
		this.result
			.include("acoes", acoesDao.listaTudo())
			.include("advogados", advogadosDao.listaTudo())
			.include("cidades", cidadesDao.listaTudo())
			.include("objetos", objetosDao.listaTudo())
			.include("orgaosjulgadores", orgaosjulgadoresDao.listaTudo())
			.include("eventos", bsProcId);
				
		return processoId;
	}

a lógica do lightbox é essa:

@Path("/eventosProcesso")
	public void eventosLightbox(){
		this.result.include("tiposdeeventos", teDao.listaTudo());
	}

e a lógica do cadastro do lightbox é essa:

@Path("/eventosProcessoAdiciona")
	public void processoadiciona(Eventos eventos) {
		eventosDao.salva(eventos);
                result.redirect "?"
	}

O que insiro no result.redirect para que a página de detalhes receba novamente o id do processo?
Nota, todas as lógicas estão dentro de ProcessosController.class
Já tentei de tudo… uma luz pelo amor de deus: meu prazo é 2 horas.

8 Respostas

doravan

Nubisse denovo :smiley:
Desculpem

Código consertado para

@Path("/eventosProcessoAdiciona")
	public void processoadiciona(Eventos eventos) {
		Long id = eventos.getProcessos().getId(); 
		eventosDao.salva(eventos);
		
		result.redirectTo(ProcessosController.class).detalhesprocesso(id);
	}

Sucesso na adição.

Lucas_Cavalcanti

se o processoadiciona tb é da classe ProcessosController, vc pode fazer:

result.redirectTo(this).detalhesprocesso(id);

[]'s

Leandro-SP

Acho que minha duvida se encaixa nesse topico.

Na linha abaixo:

e se eu tiver uma lista muito grande para ser colocada no result.include ? o meu select option vai demorar para ser populado…

ou é melhor gravar a consulta ao banco num arquivo… assim pouparia o tempo da consulta e ficaria somente com o tempo da transmissão dos dados via rede.

aguardo resposta.
obrigado.
Leandro.

Lucas_Cavalcanti

o melhor, na verdade, é vc fazer a busca paginada.

gravar num arquivo não resolve muita coisa (cache de 2o nível do hibernate talvez fosse melhor até)

Leandro-SP

Tentei ver uma outra opção ao select box, que no momento está com uma lista grande, mas nao encontrei nenhuma alternativa.

Como a lista é fixa, inseri um cached query do EhCache na query e agilizou um pouco…

Vc sabe de alguma outra opção elegante na interface para implementar a paginação de uma lista que no momento está sendo mostrada num select box?

Estou usando Jquery para a parte da interface.

aguardo resposta.

obrigado.

Att,

Leandro.

Lucas_Cavalcanti

vc pode fazer o seguinte:

mostre só os primeiros 20 elementos do checkbox, e qdo o cara scrollar até o final do checkbox vc carrega mais 20 elementos via ajax. (tipo como o twitter faz)

outra opção é trocar o checkbox por um autocomplete (a pessoa começa a digitar e aparecem os primeiros hits que começam com aquilo)

Leandro-SP

Lucas Cavalcanti:
vc pode fazer o seguinte:

mostre só os primeiros 20 elementos do checkbox, e qdo o cara scrollar até o final do checkbox vc carrega mais 20 elementos via ajax. (tipo como o twitter faz)

outra opção é trocar o checkbox por um autocomplete (a pessoa começa a digitar e aparecem os primeiros hits que começam com aquilo)

Gostei da ideia do autocomplete… acho que vou implementar ela… porém vou precisar que o usuario escolha uma das opções do checkbox obrigatoriamente. nao vai poder escrever o que ele quiser caso nao ache a opção na lista do checkbox… vou procurar como fazer isso… será que dá?

Obrigado!

Lucas_Cavalcanti

dá sim, procure sobre jQuery autocomplete (o mesmo que a gente usa na apostila do FJ-28 do VRaptor)

ele seta um input com o valor do que o cara escolheu. se esse input está vazio vc pode dar erro de validação

Criado 28 de outubro de 2010
Ultima resposta 9 de nov. de 2010
Respostas 8
Participantes 3