Шаблоны Spring URI с регулярными выражениями - PullRequest
6 голосов
/ 26 января 2012

Эй, кто-то знает, как можно сопоставить этот URI "http://localhost:8080/test/user/127.0.0.1:8002:8" с @ RequestMapping.

Я пытаюсь написать этот код:

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET,headers="Accept=application/xml" )
public void test(@PathVariable("id") String id) {
System.out.println(id);
return null;
}

, но проблема заключается в том, когда я печатаю идентификаторзначение: 127.0.0 Может быть, что-то не так?

Ответы [ 2 ]

12 голосов
/ 26 января 2012

См. Документацию SpEL: http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/expressions.html

Вам нужно сделать что-то вроде этого:

@RequestMapping(value = "/user/{id:.*}", method = RequestMethod.GET,headers="Accept=application/xml" )
public void test(@PathVariable("id") String id) {
5 голосов
/ 26 января 2012

Если вы используете стиль @Configuration со Spring MVC, это поможет:

@Configuration
public class Api extends WebMvcConfigurationSupport {

    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        RequestMappingHandlerMapping mapping = super.requestMappingHandlerMapping();
        mapping.setUseSuffixPatternMatch(false);
        return mapping;
    }

}

Как видите, вы должны отключить useSuffixPatternMatch в RequestMappingHandlerMapping.

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...