Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre Taglib mvcUrl

Olá,

Uma dúvida: como que o a taglig mvc url sabe qual controller deve ser chamado?

Seguindo o exemplo: ${s:mvcUrl('PC#form').build()}, como ela "sabe" que estou querendo o "ProdutoController" e não o "PagamentoController"?

2 respostas

Opa, é uma ótima pergunta... se vc tiver 2, você pode usar o atributo name do requestmapping e referenciar ele na tag mvcUrl.

solução!

Olá vmenck,

Então, usando dessa forma a taglib usa uma inferência PC#form para buscar entre os controllers uma classe que tenha as iniciais PC, ProdutoController por exemplo, e nesse caso uma action dentro dela denominada form.

Como você mesmo já percebeu, e se tivermos PagamentoController ? Bom, nesse caso já não conseguimos utilizar essa inferência =(.

Mas nem tudo está perdido, ainda conseguimos usar a função mvcUrl

Exemplo:

${spring:mvcUrl('produtoForm').build()}

.. e no seu Controller:

@RequestMapping(value="/produto/form", name="produtoForm")
public String form() {
    ...
}

Podemos usar a propriedade name da RequestMapping, para identificar unicamente (independente dos controllers onde se encontram) as actions. Assim podemos pedir para a função mvcUrl buscar pelo name ao invés da inferência pelas iniciais do controller # nome do método.

Espero ter ajudado. Abraço!