복붙노트

[SPRING] Spring MVC 요청 메소드 'GET'이 지원되지 않는 이유는 무엇입니까?

SPRING

Spring MVC 요청 메소드 'GET'이 지원되지 않는 이유는 무엇입니까?

@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>

입력 버튼 브라우저에 오류가 있습니다.

해결법

  1. ==============================

    1.변화

    변화

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

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

    2.method = POST는 양식을 url / test에 '게시'하는 경우 작동합니다.

    method = POST는 양식을 url / test에 '게시'하는 경우 작동합니다.

    브라우저의 주소 표시 줄에 url을 입력하고 Enter 키를 누르면 항상 GET 요청이므로 POST 요청을 지정해야합니다.

    HTTP GET 및 HTTP POST 용 Google (PUT DELETE와 같은 여러 가지가 있습니다.) 그들 모두에는 그들 자신의 의미가 있습니다.

  3. ==============================

    3.컨트롤러에 get 및 post 요청을 포함하여이 오류를 해결했습니다. method = {RequestMethod.POST, RequestMethod.GET}

    컨트롤러에 get 및 post 요청을 포함하여이 오류를 해결했습니다. method = {RequestMethod.POST, RequestMethod.GET}

  4. ==============================

    4.나는 또한 같은 문제가 있었다. 나는 그것을 다음과 같이 바꿨다.

    나는 또한 같은 문제가 있었다. 나는 그것을 다음과 같이 바꿨다.

    자바 :

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

    HTML 코드 :

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

    기본적으로 GET을 사용하는 양식에 http 메소드를 지정하지 않은 경우. POST 메소드를 사용하려면 특별히 명시해야합니다.

    희망이 도움이됩니다.

  5. from https://stackoverflow.com/questions/3333611/why-springmvc-request-method-get-not-supported by cc-by-sa and MIT license