[Resolvido] VRaptor - URL customizada para cada usuario

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

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}.

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é… =/

[quote=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é… =/[/quote]

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

[quote=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}.[/quote]

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

Obrigado.

Resolvido.

Só uma observação que fiquei imaginando:

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