2016-04-26 7 views
0

Ich habe folgende Anforderungszuordnung.Anfrage Zuordnung mit einem Punkt (.) Im letzten Pfad

@RequestMapping(value = "/{userId}", produces = { MediaTypes.HAL_JSON_VALUE }) 
@ResponseStatus(HttpStatus.OK) 
public Resource<UserDTO> findUser(@PathVariable final String userId) { 
    User user = administrationService.getSecurityUserById(userId); 
    return userResourceAssembler.toResource(modelMapper.map(user, UserDTO.class)); 
} 

Ich benutze RestTemplate die Ressource zu erhalten. Die Benutzer-IDs in der URL übergeben enthalten einen Punkt wie (.): john.doe -> URL: http://mysite/users/john.doe Wenn das obige Verfahren nur aufgerufen wird, ich john in @PathVariable userId bekommen.

Wie kann das behoben werden? zu bekommen john.doe

Thx.

Antwort

0

alles, was nach einem Punkt in RequestMapping geht, wird als Erweiterung betrachtet und daher ignoriert. Wenn Sie mit dem Punkt und dem Rest der Zeichenfolge lesen möchten, empfehle ich eine Regex in Ihrer Anforderungszuordnung wie: /{userId:.+} genauere Erklärung finden Sie hier: Spring MVC @PathVariable with dot (.) is getting truncated

Verwandte Themen