WW: Redir em tempo de execução  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

Tenho uma action no WW que pode ter como resultado o redirecionamento para páginas diferentes, por exemplo:

/MyAction.action?id=10

if (id == 1) vai para hello1.jsp
if (id == 2) vai para hello2.jsp
...
if (id == 10) vai para hello10.jsp

Como eu faço isso ??? Devo criar vários resultados diferentes (SUCCESS1, SUCCESS2, etc.) ou há outro jeito de configurar redirecionamentos dinâmicos ?

This message was edited 1 time. Last update was at 07/06/2005 10:35:06


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Tem alguma coisa errada nessa lógica .... as actions não devem atuar como controllers, que neste caso está parecendo.

De qualquer modo vc pode configurar o result SUCCESS para decide.jsp?id=${idComGetNaAction} e no decide.jsp fazer um redirect ou mesmo um include ... whatever.

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

O exemplo é simples, por isso parece um controller, mas a idéia não é essa. Uma action pode só saber em tempo de execução para onde ela vai redirecionar.

Usar decide.jsp funciona, mas isso não seria contra as regras de boa conduta, colocar código e lógica num JSP ???

Exemplo de um interceptor que enfrente esse problema. No meu processo de autenticação, eu quero fazer o redirecionamento automático para a primeira página que o usuário tentou acessar sem estar logado. Então se eu acesso:

http://www.myapp.com/ViewProfile?id=10

e não estou logado eu sou redirecionado para a página de login, e a url acima é adicionada a sessão.

Daí depois que eu logo, ao invés de cair na primeira página do site, eu sou automaticamente redirecionado para o link acima, entendeu?

O meu interceptor que faz isso não tem como saber de antimão qual é a página que ele vai ter que redirecionar, isto é, o redirecionamento é dinâmico.

Como resolvo isso no WW ???

Dois problemas então:

1) Tenho uma lista pré-definida de URLs que eu posso redirecionar, e quero escolher o redir dinamicamente dessa lista. (Minha primeira pergunta)

2) Não tenho nenhuma informação sobre o destino do redir. (Problema do redir da autenticação.)


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

Parece que o único jeito é criar um jsp redir.jsp e passar a url como parametro pra ele.

Talvez o WW devesse suportar redirecionamento dinâmicos, apesar de eu concordar que não é sempre que a gente precisa disso.

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Eu crio results diferentes. Pra isso que eles servem.

Former LIPE.
[ICQ]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

LIPE wrote:Eu crio results diferentes. Pra isso que eles servem.


Perfeito, mas quando toda a URL for dinâmica não há jeito com result diferente, concorda? Teria que usar o redir.jsp.

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
fabio.patricio
GUJ Master

Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline

Sergio,

Depois que falei contigo e fui encher a barrida de comiga e tive algumas idéias sobre o problema.

Uma saida seria criar um novo Result que buscaria de forma dinamica a URL a ser retornada.

Outra saida seria criar um PreResultListener, e nele alterar o ResultConfig alterando a URL de retorno.

Se essa necessidade for grande pensaria algo assim, senao usaria com uma pagina redirecionando mesmo.

]['s

This message was edited 1 time. Last update was at 07/06/2005 14:28:52


Fabio Patricio
http://blog.wansoft.com.br

[WWW] [MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Nesse caso você segue a sugestão do smota.

Former LIPE.
[ICQ]
fabio.patricio
GUJ Master

Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline

LIPE wrote:Nesse caso você segue a sugestão do smota.


LIPE,

Desculpa nao entendi. Em qual caso e qual sugestao?

]['s

Fabio Patricio
http://blog.wansoft.com.br

[WWW] [MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline


onde "number" é uma variável com get/set na action.

Former LIPE.
[ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team