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"?
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"?
Opa, é uma ótima pergunta... se vc tiver 2, você pode usar o atributo name do requestmapping e referenciar ele na tag mvcUrl
.
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!