2015-09-29 2 views
0
@RequestMapping(value = "/newLoadtest/{loadtest}", method = RequestMethod.POST) 
public @ResponseBody void addNewLoadTest(@PathVariable("loadtest") String loadtest) { 
     System.out.println(loadtest); 
} 

Это код, который я написал, и если позволяет сказать, что строка loadtest является «test.version». По какой-то причине период не работает. Он выводит только «тест»Проблема с исправлением URL-адреса Spring Restful с параметром "."

Я думаю, что проблема здесь может быть кодировкой url, но я не уверен, как это сделать. Пожалуйста, помогите

+0

Прочитать http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-requestmapping-suffix-pattern-match –

ответ

0

Его весенний способ избежать любого суффикса в URI. У вас есть два способа отключить его.

добавить «:. +» После определения переменной пути.

@RequestMapping(value = "/newLoadtest/{loadtest:.+}", method = RequestMethod.POST) 

Другой способ заключается в Используйте свой собственный «DefaultAnnotationHandlerMapping» и отключить «useDefaultSuffixPattern» ложь.

0

Проверить ниже цитаты из Spring reference:

По умолчанию Spring MVC автоматически выполняет сопоставление суффиксов шаблона так, что контроллер отображается на/человек неявно преобразуются в/человек «.».. Это позволяет указывать типы контента через расширения файлов, например. /person.pdf, /person.xml и т. д. Однако общая ошибка заключается в том, что последний сегмент пути отображения является переменной URI, например./Человек/{идентификатор}. Хотя запрос /person/1.json корректно приведет к переменной пути id = 1 и расширению «.json», когда идентификатор, естественно, содержит точку, например. /person/[email protected] результат не соответствует ожиданиям. Очевидно, что «.com» не является расширением файла.

, если вы не хотите использовать расширение содержания переговоров вы можете отключить его с помощью этой строки в поле ниже код configurer.setUseSuffixPatternMatch(false); или я думаю, что ниже решение лучше всего использовать зарегистрированный суффикс, это до ваших потребностей

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

@Override 
public void configurePathMatch(PathMatchConfigurer configurer) { 
    //configurer.setUseSuffixPatternMatch(false);//this will disable all suffices from negotiation 
    configurer.setUseRegisteredSuffixPatternMatch(true); 
} 
} 
Смежные вопросы