[RESOLVIDO]JSF + Applet: Garantir recarga do applet ao navegar da página do applet para ela própria  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
Mantu
GUJ Ranger
[Avatar]

Membro desde: 27/03/2006 09:05:16
Mensagens: 961
Localização: São Paulo/SP
Offline

Olá pessoal!

Tenho uma página jsf que contém um applet que lê um xml e faz o que tem que fazer. Para criar esse xml dinamicamente, há uma url para um servlet, o qual gera e grava no output stream do response o bendito xml.

Dentro do applet, há alguns desenhos com links que acessam o tal servlet e que transformam a aparencia do que é exibido pelo applet.

Nesta página há também um menu comum a todas as páginas (não pertencente ao applet), e um dos itens deste menu leva o usuário à página deste applet.

O usuário acessa a página, brinca com o applet e resolve então voltar o applet ao estado inicial. Ele então clica no item de menu mencionado acima.

Problema: O usuário percebe que a página é recarregada, porém o applet não! Ele mantém a aparência anterior ao clique no item do menu.
Debugando, notei que o servlet que monta o xml não é executado quando você navega desta página para ela mesma. Para recarregar, eu preciso sair para uma outra página e voltar para aquela do applet.

A seguir, o fonte da página e explicações mais detalhadas:

Fonte do conteúdo da página:


Fonte do menu:

O item do menu em questão é o link de action funcional.explorar.

XMLServlet é o servlet que gera e grava o xml utilizado pelo applet no response.

Quando o usuário está em uma página diferente da postada acima, e clica no menu funcional.explorar, o método service(HttpServletRequest, HttpServletResponse) do XMLServlet é executado.
Agora, se o usuário já está na página em questão e clica no menu funcional.explorar, a página é recarregada (O actionListener do menu é executado), porém o o método service(HttpServletRequest, HttpServletResponse) do XMLServlet não é executado. Go figure...

Obrigado no mínimo pela paciência de ter chegado até aqui...

This message was edited 2 times. Last update was at 22/03/2010 11:18:07


[]'s
Mantu

"Vou lançar o 'Caguei'. Caguei para o 'Cansei'". Luciano Camargo
"O povo votou contra a opinião pública". Um certo jornalão da mídia golpista, a respeito da vitória de um certo cadidato a presidente do Brasil.

[Email] [MSN] [ICQ]
sr.sucesso
Thread.start()
[Avatar]

Membro desde: 28/05/2005 23:33:48
Mensagens: 29
Localização: Osasco/SP
Offline

Verifique se a URL que é passada no param é a mesma que está entrando no applet. Talvez o applet esteja recebendo pela JVM do browser a URL antiga.

Trabalhar com JSF e Applets é algo de difícil a impossível... o que você fez para conseguir essa magia?


*********************************************
Metas Atuais: casar no fim do ano ::

****

É impossível saber tudo. Se não está no Google, tá no GUJ.
[WWW] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Ele ainda vive!

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Fernando H. Gomes
JavaChild

Membro desde: 02/06/2009 13:26:13
Mensagens: 146
Localização: Pr, Medianeira
Offline

não tem como voce chamar uma função ajax que chame o servlet e faça a re-renderização do applet?

---------------CLICA-ME---------------
---------------------------------------------------
---------------- PUBLICAÇÕES ----------------
http://www.linhadecodigo.com.br/Artigo.aspx?id=2770


---------------------------------------------------

----------- BANNERS ---------------------------


-----------------------------------------------------

----------OUTROS -------------------------------
Campanha Volta ICQ - 613727599 - http://download.icq.com/download/icq/?icid=abhp_7_left
----------------------------------------------------
[Email] [MSN] [ICQ]
Mantu
GUJ Ranger
[Avatar]

Membro desde: 27/03/2006 09:05:16
Mensagens: 961
Localização: São Paulo/SP
Offline

ViniGodoy wrote:Ele ainda vive!


Soterrado no trabalho, mas ainda respirando, kkkk

De fato, o que o sr.sucesso falou acima se verifica.
A solução que ele me sugeriu funcionou: "Enganar" o browser para que ele penseque, cada vez que a página é carregada, seu fonte está diferente, forçando que ele recarrege a página e, consequentemente, execute o servlet amarrado no applet .

Para isso, um pequeno pog dentro da tag do applet bastou:


É um parâmetro que eu não uso para nada e que recebe do método getTime() da classe SomeBean um new Date().getTime(). Isso só pra garantir que sempre que a página seja recarregada, o browser não utilize nenhum tipo de "cache".

Thanks sr.sucesso.

[]'s
Mantu

"Vou lançar o 'Caguei'. Caguei para o 'Cansei'". Luciano Camargo
"O povo votou contra a opinião pública". Um certo jornalão da mídia golpista, a respeito da vitória de um certo cadidato a presidente do Brasil.

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