Рубрики
Без рубрики

Весенний ОТДЫХ @RequestMapping извлекается неправильно, если значение содержит ‘.’

– Весенний ОТДЫХ @RequestMapping извлекается неправильно, если значение содержит ‘.’

Проблема

Смотрите следующий пример весеннего ОТДЫХА, если запрос, такой как ” http://localhost:8080/site/google.com “отправлено, весна возвращается” google “. Похоже, что Spring рассматривает “.” как расширение файла и извлекает половину значения параметра.

package com.mkyong.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/site")
public class SiteController {

	@RequestMapping(value = "/{domain}", method = RequestMethod.GET)
	public String printWelcome(@PathVariable("domain") String domain,
		ModelMap model) {

		model.addAttribute("domain", domain);
		return "domain";

	}

}

Решение

Чтобы исправить это, сделайте @RequestMapping поддерживает регулярное выражение, добавьте ” .+ “, это значит соответствовать чему угодно. Теперь весна вернется” google.com “.

package com.mkyong.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/site")
public class SiteController {

	@RequestMapping(value = "/{domain:.+}", method = RequestMethod.GET)
	public String printWelcome(@PathVariable("domain") String domain,
		ModelMap model) {

		model.addAttribute("domain", domain);
		return "domain";

	}

}

Рекомендации

  1. Шаблоны шаблонов Spring MVC –URI с регулярными выражениями
  2. Регулярное выражение Википедия
  3. Пружина jira –SPR-6164

Оригинал: “https://mkyong.com/spring-mvc/spring-rest-requestmapping-extract-incorrectly-if-value-contains/”