Bookmarking com Restfaces
Habilitando o suporte à bookmarking no JSF.
Estatísticas:
Serviços:

Bookmarking com
Restfaces
Habilitando o suporte à
bookmarking no JSF
Baseado
em várias questões, dentre elas a segurança, o JavaServer Faces utiliza, por padrão, o método POST, ao fazer
requisições ao servidor. Uma característica do método POST é incluir os dados a
serem processados, junto ao corpo da requisição. Isso trouxe algumas limitações
ao JSF, uma delas é a falta de suporte ao bookmarking. Com a popularização de
serviços de social bookmarking, como o del.icio.us,
digg, technorati e o nacional blogblogs, isso seria uma desvantagem para web
sites desenvolvidos
Dentre os
frameworks para extensão do bookmarking, o Restfaces tem se apresentado uma
solução simples e robusta. Ele permite-nos alterar propriedades nos beans e passar parâmetros para os métodos através da URL,
converter parâmetros, além de outras coisas que
veremos.
A partir
da versão 1.3, ficou ainda mais fácil usar as annotations do Restfaces. Outras características
são:
- Redirecionamento usando o prefixo
rest:. Se um bean retornar por exemplo:
return ”rest:imprimirBoleto” ou return ”rest:/boleto.jsp”, o Restfaces irá redirecionar,
respectivamente, para uma ação chamada ”imprimirBoleto” ou para a página ”boleto.jsp”.
- Remoção do mapeamento do Faces Servlet da URL, ou seja,
até a versão 1.2 o bookmarking era feito com a extensão configurada, já com a
versão 1.3 ao invés de /id/726.jsf, temos /id/726.
- Suporte a dois estilos de passagem
de parâmetros: query parameter (ex.: ?local=centro) e
path parameter (ex.: /local/centro).
Instalação
A última
versão do Restfaces pode ser baixada aqui.
O arquivo jar deve ser colocado no classpath da sua aplicação (WEB-INF\lib) e as
seguintes alterações devem ser feitas no faces-config.xml:
<faces-config>
<application>
<view-handler>
org.restfaces.application.RestViewHandler
</view-handler>
<navigation-handler>
org.restfaces.application.RestNavigationHandler
</navigation-handler>
...
</application>
...
</faces-config>
Listagem
01. Configuração
do faces-config.xml.
Pronto!
O Restfaces já foi instalado. Agora para usá-lo nas suas páginas basta
acrescentar a taglib de acordo com a Listagem 02, ou se estiver usando
Facelets acrescentar o namespace de acordo com a Listagem 03.
<%@
taglib uri=”http://restfaces.dev.java.net” prefix=”rest” %>
Listagem
02.
Restfaces numa página JSP.
xmlns:rest=”http://restfaces.dev.java.net”
Listagem
03.
Restfaces com Facelets.
Habilitando
bookmarking
Eu
havia falado que o JSF não faz requisições GET, mas isso não é bem verdade. A
tag <h:outputLink />
renderiza um link HTTP que usa o método GET, isso é verdade. Só que se quisermos
executar uma ação num bean por meio dessa tag, teríamos que implementar um PhaseListener, o que daria mais trabalho. O
Restfaces se propõe a evitar esse trabalho. Na Listagem 04 vemos um exemplo de como o
trabalhar com esse framework pode ser simples.
package
br.com.javamagazine;
import
org.restfaces.annotation.*;
public
class
ClienteBean {
private
Cliente cliente;
@HttpAction(value="pesquisarCliente",
pattern="cliente/{id}")
public
String getCliente(@Param("id")
long
id){
cliente =
new
ClienteService().getClientePorId(id);
return
"/cliente.jsp";
}
}
Listagem
04. Exemplo
de Bean com Restfaces.
De
acordo com o código da Listagem 04,
nota-se que apenas duas anotações foram utilizadas. @HttpAction
anota o método que será acionado pela página e possui dois parâmetros,
value,
que é valor único e obrigatório e pattern
que é opcional. Vale notar que o pattern termina com
{id},
isso serve para que o estilo da URL use o path parameter (/cliente/987)
ao invés do query parameter
(/cliente?id=987).
A outra anotação, @Param,
identifica o parâmetro passado pela página. A Listagem 05 mostra como fica na
página.
<rest:link
value="pesquisarCliente">
<f:param
name="id"
value="#{cliente.id}"
/>
<h:outputText
value="#{cliente.nome}">
</rest:link>
Listagem
05.
Restfaces numa página.
Esta
foi uma rápida introdução ao bookmarking no JSF com RestFaces. Bookmarking é uma limitação do JSF que será
superada com a versão 2.0. Enquanto o release não chega o RestFaces vem apresentando-se como
uma ótima solução. No próximo artigo veremos outras funcionalidades do RestFaces, tais como converter
parâmetros, setar propriedades dentre outras coisas.
Até a próxima.

Participe! Inclua um comentário
10/8/2010 10:45
[responder]

Dyego Souza do Carmo
11/8/2010 17:13
Em meu devspace tenho uma video aula sobre o RestFaces :) e tambem da abordagem do JSF 2.0 para bookmarking !
Espero ter ajudado !
[responder]





[vídeo] Consumindo os dados via ajax – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 3

[vídeo] Classe POCO – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 1

Imprimindo Relatório : VCL Crystal Reports XI - Delphi

VCL Crystal Reports XI - Delphi

[vídeo] Gerenciamento das Comunicações - Curso Gerência de Projetos – Parte 8

[vídeo] Plano de Comunicação - Curso Gerência de Projetos – Parte 9

[vídeo] Seleção e Priorização de Projetos - Curso Gerência de Projetos – Parte 6

[vídeo] Escopo, metas, premissas, restrições - Curso Gerência de Projetos – Parte 7

[vídeo] Documento Conceitual do Projeto - Curso Gerência de Projetos – Parte 5


Você está em:





Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!


