Why SpringMVC Request method 'GET' not supported?
I trying @RequestMapping(value = "/test", method = RequestMethod.POST)
but is error
Code is
@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 is
<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>
and springmvc.xml is
index.jsp is
<form action="<%=request.getContextPath() %>/test" method="post">
<input type="submit" value="submit">
</form>
I input submit botton brower is error
HTTP Status 405 - Request method 'GET' not supported type Status report
message Request method 'GET' not supported
description The specified HTTP method is not allowed for the requested resource (Request method 'GET' not supported).
method = POST
will work if you 'post' a form to the url /test.
if you type a url in address bar of a browser and hit enter, it's always a GET
request, so you had to specify POST request.
Google for HTTP GET
and HTTP POST
(there are several others like PUT DELETE). They all have their own meaning.
Change
@RequestMapping(value = "/test", method = RequestMethod.POST)
To
@RequestMapping(value = "/test", method = RequestMethod.GET)
I solved this error by including a get and post request in my controller: method={RequestMethod.POST, RequestMethod.GET}
Apparently some POST requests looks like a "GET" to the server (like Heroku...)
So I use this strategy and it works for me:
@RequestMapping(value = "/salvar", method = { RequestMethod.GET, RequestMethod.POST })