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

Spring MVC - s:mvcUrl

Na aula de spring MVC foi comentado em utilizar o form da seguinte maneira:

<form:form action="${s:mvcUrl('PC#gravar').build() }" method="post" commandName="produto">

Pois o spring pega as primeiras letras do controller, em maiúsculo. Mas, o que acontece se eu tenho um ProdutoController, e também PortaController, por exemplo.

Ou seja, duas classes controller com a mesma inicial. Tentei fazer isso, e recebi um erro.

Como tratar?

1 resposta
solução!

Fala Adrian, tudo bem?

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(){
...
}

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.

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software