Почему метод запроса SpringMVC 'GET' не поддерживается? - PullRequest
19 голосов
/ 26 июля 2010

Я пытаюсь @RequestMapping(value = "/test", method = RequestMethod.POST), но есть ошибка

Код

 @Controller
 public class HelloWordController {
 private Logger logger = LoggerFactory.getLogger(HelloWordController.class);

 @RequestMapping(value = "/test", method = RequestMethod.POST)
 public String welcome() {
  logger.info("Spring params is welcome");
  return "/WEB-INF/jsp/welcome";
 }

}

web.xml - это

<servlet>
<description>This is Spring MVC DispatcherServlet</description>
<servlet-name>SpringMVC DispatchServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
  <description>SpringContext</description>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>

  <servlet-mapping>
<servlet-name>SpringMVC DispatchServlet</servlet-name>
<url-pattern>/</url-pattern>

и springmvc.xml - это

index.jsp -

<form action="<%=request.getContextPath() %>/test" method="post">
<input type="submit" value="submit"> 
</form>

Я ввожу запрос на загрузку браузера. Ошибка 1026 *

HTTP Status 405 - Метод запроса 'GET' не поддерживается тип Отчет о состоянии

сообщение Способ запроса 'GET' отсутствует поддерживается

описание Указанный метод HTTP не разрешено для запрошенного ресурс (Метод запроса 'GET' не поддерживается).

Ответы [ 5 ]

19 голосов
/ 04 сентября 2012

method = POST будет работать, если вы 'отправите' форму в URL /test.

, если вы наберете URL в адресной строке браузера и нажмете Enter, это всегда запрос GET,поэтому вам нужно было указать запрос POST.

Google для HTTP GET и HTTP POST (есть еще несколько таких, как PUT DELETE).Все они имеют свое значение.

12 голосов
/ 09 ноября 2010

Изменение

@RequestMapping(value = "/test", method = RequestMethod.POST)

Для

@RequestMapping(value = "/test", method = RequestMethod.GET)
0 голосов
/ 24 мая 2019

Очевидно, что некоторые запросы POST выглядят как «GET» к серверу (например, Heroku ...)

Так что я использую эту стратегию, и она работает для меня:

@RequestMapping(value = "/salvar", method = { RequestMethod.GET, RequestMethod.POST })
0 голосов
/ 17 мая 2018

У меня тоже была такая же проблема.Я изменил это на следующее, и это сработало.

Java:

@RequestMapping(value = "/test", method = RequestMethod.GET)

HTML-код:

  <form action="<%=request.getContextPath() %>/test" method="GET">
    <input type="submit" value="submit"> 
    </form>

По умолчанию, если в форме не указан метод http, используется GET.Чтобы использовать метод POST, вам необходимо указать это.

Надеюсь, это поможет.

0 голосов
/ 22 января 2018

Я решил эту ошибку, включив запрос на получение и публикацию в моем контроллере: method = {RequestMethod.POST, RequestMethod.GET}

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