Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

mvcUrl montando Url com as duas "letras maiúsculas" do Controller

Se eu tenho um ProdutoController e gostaria de chamar um método do mesmo em um JSP, eu posso usar o mvcUrl da seguinte forma:

${s:mvcUrl('PC#gravar').build()}

Onde 's' é o prefix da tagLib de uri http://www.springframework.org/tags, 'PC' são as duas letras maiúsculas do nome do controller e 'gravar' é um método do controller.

Contudo, o que acontece caso eu tenha dois controllers com mesmas iniciais e o mesmo método. Por exemplo: ProdutoController e PagamentoController, ambos com o mesmo método gravar?

1 resposta
solução!

Nesse caso, você precisa alterar o nome do mapeamento para a URI que você quer acessar. Para isso basta você adicionar o atributo name na anotação @RequestMapping para o método que você quer usar no s:mvcUrl.

Por exemplo:

@RequestMapping(value="/categoria/form",name="categoria_form")
public String formulario(){
...
}

Nesse caso, Na sua página você irá colocar ${s:mvcUrl('categoria_form').build()}

Se você quiser saber mais sobre a classe MvcUriComponentsBuilder que é utilizada na tag mvcUrl, vou deixar o link da documentação dela.

http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.html#relativeTo-org.springframework.web.util.UriComponentsBuilder-

Esse link já está na sessão do método fromMappingName, que é justamente o método que é usado na tag s:mvcUrl.

Espero ter ajudado.