Regulärer Ausdruck kann nicht zugeordnet werden - java.lang.IllegalArgumentException: Die Anzahl der Erfassungsgruppen im Mustersegment
In meinem Controller ist folgende Methode definiert:
@RequestMapping(value = "/ajax/comments/post/{contentId:([apv]|ad)\\d+}")
public @ResponseBody
ActionResult handlePostCommentRequest(HttpServletRequest request, Model model,
@PathVariable("contentId") String assetId,
@RequestParam(value = "nickName", required = false, defaultValue = "Anonyymi") String nickName,
@RequestParam(value = "text", required = false, defaultValue = "") String text,
@RequestParam(value = "createThread", required = false, defaultValue = "false") String createThread) {
// some code...
}
Wenn ich jedoch die folgende HTTP-Anfrage mache - / ajax / comments / post / ad1374659405664, erhalte ich eine Ausnahme:
org.springframework.web.util.NestedServletException: Anforderungsverarbeitung fehlgeschlagen; verschachtelte Ausnahme ist java.lang.IllegalArgumentException: Die Anzahl der Erfassungsgruppen im Mustersegment (([apv] | ad) \ d +) stimmt nicht mit der Anzahl der von ihm definierten URI-Vorlagenvariablen überein. Dies kann auftreten, wenn Erfassungsgruppen in verwendet werden ein regulärer Ausdruck für eine URI-Vorlage. Verwenden Sie stattdessen nicht erfassende Gruppen.
Google liefert nicht so viele Ergebnisse und es ist komisch, denn wenn ich die Regex überprüfe([vpa]|ad)\d+
imhttp://regexpal.com/ es passt alles richtig. Was mache ich falsch?