[Resolvido] VRaptor - URL customizada para cada usuario

6 respostas
D

Olá,
Uso VRaptor e estou querendo implementar um recurso de url personalizada para cada cliente do meu portal, exemplo:

Cada cliente/empresa poderá ter seu username (www.exemplo.com.br/username), sendo que gostaria de saber a melhor forma de implementar esse recurso com vraptor.

Minha dificuldade é que tenho outras urls mapeadas seguindo esse padrão, como www.exemplo.com.br/contato, www.exemplo.com.br/cadastro, etc, que me impedem de utilizar um @Path("/{username}") no controller e talvez ficasse muito lento adotar esse padrão, pois para acessar simplesmente o www.exemplo.com.br/contato, teria que fazer busca no banco antes. O ideal, seria que de alguma forma: caso a url www.exemplo.com.br/username não seja utilizada/anotada em nenhum controller, só assim faça a busca no BD pela url do cliente.

OBS: A seguinte possibilidade foi descartada:

  • (www.exemplo.com.br/prefixo/username) -> prefixo para facilitar o mapeamento da url no controler, pois o requisito é o username acompanhar obrigatoriamente a url, como em: www.exemplo.com.br/username

6 Respostas

G

Cria o path com a prioridade baixa: @Path(value="/{username}", priority=LOWEST}

Desta forma o vraptor primeiro procura pelas outras URLs, e caso não achar nenhuma, usa a /{username}.

Avelino7

E se você fizesse:
www.exemplo.com/user/username

O Youtube segue esse padrão…

Ou ordem alfabética…

www.exemplo.com/a/username
www.exemplo.com/b/username
www.exemplo.com/c/username
www.exemplo.com/d/username

Mas você descartou né… =/

D

Avelino7:
E se você fizesse:
www.exemplo.com/user/username

O Youtube segue esse padrão…

Ou ordem alfabética…

www.exemplo.com/a/username
www.exemplo.com/b/username
www.exemplo.com/c/username
www.exemplo.com/d/username

Mas você descartou né… =/

Avelino,
Foi descartada, porém a solução do Garcia atende perfeitamente.

D

garcia-jj:
Cria o path com a prioridade baixa: @Path(value="/{username}", priority=LOWEST}

Desta forma o vraptor primeiro procura pelas outras URLs, e caso não achar nenhuma, usa a /{username}.

Garcia,
Perfeito!!! Solução atende 100% do requisito.

Obrigado.

D

Resolvido.

A

Só uma observação que fiquei imaginando:

Se algum usuário escolher o username “cadastro” vai ter sérios problemas…

Criado 29 de maio de 2012
Ultima resposta 29 de mai. de 2012
Respostas 6
Participantes 4