Paths multiplos a partir da Controller

28 views
Skip to first unread message

Felipe dos Santos Assis

unread,
Sep 19, 2017, 2:21:26 PM9/19/17
to caelum-vraptor
Boa tarde pessoal, tudo na paz?

Estou criando uma solução de sistema de franquias e preciso fazer um carregamento dinâmico, a origem dos dados é identificada pela URL. Segue um exemplo

"http://www.meusite.com.br/cadastros/", sendo esta a url original. Porém, quando eu informar a URL "http://www.meusite.com.br/franquia/cadastros/", ele deve chamar o mesmo método da URL anterior e carregar alguns dados da franquia a partir da palavra chave (franquia, neste exemplo) que renderizará algumas informações específicas da franquia.

Como primeira tentativa  testei a seguinte solução:

@Controller
@Path("/cadastros")
public class CadastrosController {
    ...
    @Get({"/", "{chaveFranquia}/"})
    public void index(String chaveFranquia) {
        ...
    }
   ...
}

Porém, solucionou apenas para págnias da raíz, e no meu caso ficou como "http://www.meusite.com.br/cadastros/franquia/". Depois tentei outra solução onde customizei a Path na Controller:

@Controller
@Path({"/cadastros", "/{chaveFranquia}/")
public class CadastrosController {
    ...
    @Get("/")
    public void index(String chaveFranquia) {
        ...
    }
   ...
}

O VRaptor não permite incluir vários paths na Controller então deu erro. Então como ultima solução, pensei em duplicar a Controller e parametrizar a mesma, acredito que funcionará, mas duplicar em virtude disso não é uma boa solução.

Alguém de vocês já precisou criar uma solução parecida e que possa me ajudar?

Obrigado!

Ivo Sestren Junior

unread,
Sep 19, 2017, 3:32:52 PM9/19/17
to caelum-...@googlegroups.com
podes fazer assim...

@Path("/")
public class IndexController {

@Path("/{chaveFranquia}/cadastros")
public void cadastros(String chaveFranquia) { }

@Path("/{chaveFranquia}/cadastros/{chaveCadastro}")
public void cadastros(String chaveFranquia, String chaveCadastro) { }
}


--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

Felipe dos Santos Assis

unread,
Sep 22, 2017, 3:07:50 PM9/22/17
to caelum-vraptor
Obrigado Ivo!

Sua sugestão funcionou perfeitamente!

Abraços

Felipe dos Santos Assis

unread,
Oct 13, 2017, 8:27:36 AM10/13/17
to caelum-vraptor
Pessoal,

Agora estou com outro problema referente a URL dinâmica. O cliente me pediu para que a url seja chamada da seguinte forma:

@Controller
public class PortalController {
    ...
    @Path({"/", "/{chaveFranquia}"})

    public void index(String chaveFranquia) {
        ...
    }
   ...
}

Ou seja sem a barra no final conforme o exemplo acima. Porém ao chamar a URL ele está se perdendo e não carrega a página a ser carregada pela lógica. Como posso resolver este problema?

Grato



Em terça-feira, 19 de setembro de 2017 15:21:26 UTC-3, Felipe dos Santos Assis escreveu:
Reply all
Reply to author
Forward
0 new messages