2013-08-24 16 views
14

Yalnızca e harfi ve daha sonra bir sayı ile eşleşiyorsa kullanılacak bir istek filtresi oluşturmaya çalışıyorum. Ancak işe almak için görünmüyor olabilir. Regex ile her denediğimde 400 hata alıyorum.Yay denetleyicide normal regex

Sadece aşağıdakileri kullanırsam "çalışır", ancak istemediğim sayılar içermeyen eşlemeleri de yakalar.

@RequestMapping(value = "e{number}", 
      method = RequestMethod.GET) 

Aşağıdaki kombinasyonları denedim.

@RequestMapping(value = "e{number}", 
      params = "number:\\d+", 
      method = RequestMethod.GET) 

@RequestMapping(value = "e{number:\d+}", 
      method = RequestMethod.GET) 

@RequestMapping(value = "/e{^\\+?\\d+\$}", 
      method = RequestMethod.GET) 

@RequestMapping(value = "/{^\\e+?\\d+\$}", 
      method = RequestMethod.GET) 

cevap

26

the documentation göre, {varName:regex} gibi bir şey kullanmak zorunda. bir örnek bile var:

@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}") 
    public void handle(@PathVariable String version, @PathVariable String extension) { 
    // ... 
    } 
} 
1

Sen kullanmalıdır: Böyle bir ifade değil bir cevap, bir açıklama aittir olarak

@RequestMapping("/e{number:\\d+}) 
+2

Ben, "çözüm" başvurusunu kaldırmak cevabını düzenlenebilir. Bununla birlikte, cevabınızda açıkladığınız kodun, soruyla ilgili olarak ne yaptığını açıklarsanız iyi olur. – trincot