Eu pensei que iria ter uma trabalheira do cão... pensei que não iria dar muito certo com Richfaces, Spring ... enfim todas as integrações... pensei... pensei errado! :)
Há um framework chamado PrettyFaces (para jsf 1.1 , 1.x e 2.0) o qual o uso é extremamente fácil.
Com apenas dois passos você adiciona url amigáveis ao JSF:
1º Passo: Registrar o filtro no web.xml
<filter>
<filter-name>Pretty Filter</filter-name>
<filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
2º Passo: criar o arquivo pretty-config.xml dentro de WEB-INF:
<pretty-config
xmlns="http://ocpsoft.com/prettyfaces-xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.com/prettyfaces-xsd
http://ocpsoft.com/xml/ns/prettyfaces/pretty-1.0.xsd">
<url-mapping id="verNoticia">
<pattern>/noticia/#{myBean.currentStoryId}/</pattern>
<view-id>/noticia.xhtml</view-id>
<action>#{myBean.loadComment}</action>
</url-mapping>
</pretty-config>
Com as configurações acima se você digitasse http://seuhost/seuprojeto/noticia/12345/ você mostraria o bean (de ViewID=/noticia.xhtml) com a notícia de id=12345 :)
ps: um passo omitido seria o download do jar e o registro do mesmo no classpath da sua aplicação.
5 comentários:
Bha tu e o cara.
Valeu pele dica.
Otimização de sites eo futuro
www.lrcasual.com
estava a procura dessa solução em JSF!
pelo post!
Muito boa a dica, esse pettry face facilitou bastante nossa vida. AInda preciso fazer alguns testes com o keepalive
Eu ainda não entendi como o pretty ajuda o google criando a url amigável se o jsf e o conteúdo não consegue ser entendido pelo googlebot poderia explicar melhor?
Muito Obrigado
Olá Luciano, porque o googlebot não entenderia o jsf 1.X? : ) faz muito tempo que escrevi isso mas me lembro que para o browser a página com tags html e conteúdo era exibida o problema era que essa página não estava sob nenhuma rota (id) especifico, dai por exemplo se o bot fosse em / ele começaria no root mas quando movimentasse para um link o path não mudaria "/" enfim com prettyFaces isso muda.
ps: faz muito tempo mesmo que não mexo com nada disso.
Postar um comentário