天天看點

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported

錯誤描述:

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported

 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodResolver.resolveHandlerMethod(AnnotationMethodHandlerAdapter.java:623)

 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)

 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)

 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)

 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)

 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)

 at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:572)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:640)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

 at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:74)

 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:89)

 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

 at com.baobaotao.web.ForumFilter.doFilter(ForumFilter.java:55)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

 at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:132)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:111)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)

 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

 at java.lang.Thread.run(Thread.java:619)

解決:

代碼:

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

 public String addBoard(Board board) {

     board.setTopicNum(0);

  forumService.addBoard(board);

  return "/addBoardSuccess";

 }

修改為:

import org.springframework.web.bind.annotation.ModelAttribute;

 @RequestMapping(value = "/forum/addBoard")

 public String addBoard(@ModelAttribute("board") Board board) {

     board.setTopicNum(0);

  forumService.addBoard(board);

  return "/addBoardSuccess";

 }