PathVariable no Spring

Pessoal

Tenho um controller no Spring em que uma das actions recebe uma string como parametro via url

public ModelAndView update(@PathVariable String username)

porém quando o usuário digita a string com . somente o que foi digitado antes do ponto é recebido no controller do Spring.

exemplo: localhost:8080/sistema/usuario/update/joao.silva - chega no controller = joao

se eu digitar joaosilva o parametro é passado normalmente para o controller.

Alguém sabe alguma maneira de permitir o . ??

Cara, dá sim, pelo que eu pesquisei tu pode usar regular expressions pra resolver o teu problema.

Dá uma olhada aqui: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html
Nessa parte: 16.3.2.3 URI Template Patterns with Regular Expressions

Simples assim funciona: (Spring 3.1)[code] @RequestMapping(value = “/ponto/{nome:.*}”, method = GET)
public String testePonto(@PathVariable String nome, ModelMap map, Model model) {

	System.out.println("nome: " + nome);
	
	return seuRetorno;
	
}

[/code] Existe uma discussão no StackOverflow sobre declarar o seu próprio bean DefaultAnnotationHandlerMapping (Spring < 3.1) ou o RequestMappingHandlerMapping (Spring 3.1), e setar a propriedade de controle de extensões (sim, o .jsp, .html…) pra false.

Eu não consegui, boa sorte

Vlw cara !

Vou dar uma olhada e tentar escrever baseado nessa sua recomendação.

Batata !

@RequestMapping(value = "/profile/{username:.*}", method = RequestMethod.GET)	
    		public ModelAndView profile(@PathVariable String username)  {

Works fine !

Obrigado :wink: