Fiz um teste de aplicação JSF com 2 páginas XHTML, cada uma com um botão apontando pra outra:
Inicio.xhtml
<h:form>
Resposta.xhtml
<h:form>
Porém, não estou entendendo o comportamento, quando clico no botão Acione o botão, a página Resposta.xhtml é aberta corretamente, porém, no link do browser aparece: http://localhost:8080/Navegacao/faces/Inicio.xhtml
Isso é mais uma, dentre várias outras, que não gosto no JSF.
O lifecycle dele não muda o link do browser.
Mas de qualquer forma, como JSF não trabalha mto bem com navegação por links html, isso é mais uma issue no ponto de vista estético do que funcional.
Resumindo: como a navegação é feita pelos componentes e o lifecycle dele consegue se entender bem com a renderização dos objetos, então o link é o de menos.
Se a sua preocupação é utilizar o sistema fazendo uso de URL’s, recomendo partir para um framework baseado em ações e não um baseado em componentes.
[quote=yorgan]Isso é mais uma, dentre várias outras, que não gosto no JSF.
O lifecycle dele não muda o link do browser.
Mas de qualquer forma, como JSF não trabalha mto bem com navegação por links html, isso é mais uma issue no ponto de vista estético do que funcional.
Resumindo: como a navegação é feita pelos componentes e o lifecycle dele consegue se entender bem com a renderização dos objetos, então o link é o de menos.
Se a sua preocupação é utilizar o sistema fazendo uso de URL’s, recomendo partir para um framework baseado em ações e não um baseado em componentes.
[]'s
Daniel[/quote]
Atualmente Eu uso EJB no backend com Flex no frontend e estou migrando para JSF. No Flex eu criava uma página só, e ia abrindo e fechando as janela dentro dela, sem precisar ficar recarregando. No JSF é possível ir carregando e destruindo componentes sem ficar recarregando a página?
Então, como você já programou nos dois, percebeu que Flex e JSF tem características bem diferentes.
Mas o que você pode fazer é utilizar o atributo redenred das tags.
Exemplo:
<!-- primeiro painel -->
<h:panelGroup redered="seuBean.painelRenderizado == 'PAINEL1'">
<h:form>
<!-- aqui vão os componentes do primeiro panelGroup -->
</h:form>
</h:panelGroup>
<!-- segundo painel -->
<h:panelGroup redered="seuBean.painelRenderizado == 'PAINEL2'">
<h:form>
<!-- aqui vão os componentes do segundo panelGroup -->
</h:form>
</h:panelGroup>
Se você utilizar as tags do a4j e fizer o controle desses painéis, você terá a renderização da tela sem refresh de página.
Lembrando, esse é só uma idéia de como fazer. Existem outras formas, mas daí você adapta essa solução para o seu caso.
Obs: Sempre utilize a tag Code ao inserir código em um post no fórum =).
[quote=yorgan]Então, como você já programou nos dois, percebeu que Flex e JSF tem características bem diferentes.
Mas o que você pode fazer é utilizar o atributo redenred das tags.
Exemplo:
<!-- primeiro painel -->
<h:panelGroup redered="seuBean.painelRenderizado == 'PAINEL1'">
<h:form>
<!-- aqui vão os componentes do primeiro panelGroup -->
</h:form>
</h:panelGroup>
<!-- segundo painel -->
<h:panelGroup redered="seuBean.painelRenderizado == 'PAINEL2'">
<h:form>
<!-- aqui vão os componentes do segundo panelGroup -->
</h:form>
</h:panelGroup>
Se você utilizar as tags do a4j e fizer o controle desses painéis, você terá a renderização da tela sem refresh de página.
Lembrando, esse é só uma idéia de como fazer. Existem outras formas, mas daí você adapta essa solução para o seu caso.
Obs: Sempre utilize a tag Code ao inserir código em um post no fórum =).
[]'s
Daniel[/quote]
Neste exemplo, supondo que inicialmente o Painel1 seja renderizado. Aí o usuário executa alguma ação em que eu queira esconder o Painel1 e exibir o Painel2. É possível fazer isto sem recarregar a página, apenas com chamadas de eventos AJAX?
Exatamente.
O JSF 2.0 incorporou vários recursos Ajax, então é possível.
Agora, se você estiver usando a versão 1.2, terá que recorrer ao a4j, presente por exemplo no Richfaces.
[quote=yorgan]Exatamente.
O JSF 2.0 incorporou vários recursos Ajax, então é possível.
Agora, se você estiver usando a versão 1.2, terá que recorrer ao a4j, presente por exemplo no Richfaces.