Slugs no Vraptor para SEO-friendly URLs

7 respostas
charlesalmeida

Olá pessoal gostaria da ajuda de vocês, se existe alguma coisa no vraptor para gerar slugs.

Ou onde consigo algo prático para usar.

7 Respostas

leandronsp

Fera na nova versão do VRaptor não sei se tem suporte a isso, mas quando eu usava outras versões do VRaptor eu tinha que fazer isso na mão mesmo, e funcionava como eu queria.

Um properties de-para:

/{id}/url-bonita-primeira: controller.action.logic
/{id}/url-bonita-segunda: controller.outraAction.logic

E um filtro que carregava esse properties e fazia o redirect de-para.

Lucas_Cavalcanti

você pode usar o @Path no vraptor 3 pra fazer isso…

leandronsp

Pode crer…o @Path matou meu properties. Só alegria!

charlesalmeida

Obrigado a todos pelas respostas,
ainda não estou acustumado com GUJ, desculpa a demora.

Sim imagino que @Path resolva essa questão,

mas como faço essa implementação para funcionar da seguinte forma:

Estou trabalhando com GenericRepository,

T loadById(Long id);

Como faço para Slug de uma string no caso:

Isso
http://vraptor.caelum.com.br/cookbook/1/

para isso

http://vraptor.caelum.com.br/cookbook/desabilitar-exception-do-page-result/

Lucas_Cavalcanti

bom, vc pode criar um método do controller assim:

@Path("/cookbook/{slug}")
public void view(String slug) {
    Cookbook cookbook = repository.findBySlug(slug);
    //...
}
charlesalmeida

Olá Lucas Cavalcanti,
vou tentar implementar.

Obrigado

Feliz Ano novo !

charlesalmeida

Olá Lucas consegui implementar, valeu.
Olha o código como ficou,

@Get
	@Path(value = "/noticia/{noticia.slug}", priority=Path.LOW)
	public void exibirslug(Noticia noticia) {
		noticia = (Noticia) repository.findSlugNoticia(noticia.getSlug());
		result.include("noticia", noticia);
	}
Criado 18 de dezembro de 2011
Ultima resposta 5 de jan. de 2012
Respostas 7
Participantes 3