Spring 3 MVC では、GET メソッドを使用して JSP を解決すると、問題なく動作します。
@RequestMapping(value="/my_profile", method = RequestMethod.GET)
public String saveMethod(@ModelAttribute("myBasicInfoForm") MyBasicInfoForm myBasicInfoForm, HttpServletRequest request) throws ServiceException{
return "/testmyprofile";
}
以下のように、コントローラーの別のメソッドを介して saveMethod() を呼び出します。
@RequestMapping(value="/updateProfile", method = RequestMethod.POST)
public String updateProfile(@ModelAttribute("myForm") MyForm myForm, HttpServletRequest request){ logger.debug("<-- log message"); return "redirect:/my_profile"; }
このメソッドは、HTML フォームによって呼び出されます。
<form:form id="ss_fp_basic_info" action="updateProfile" modelAttribute="myBasicInfoForm" method="post">
しかし、POST メソッドに変更すると、次のエラーが発生します。助けていただければ幸いです。
[6/20/12 11:23:36:118 EDT] 0000001f SystemOut O
[ERROR,BaseController] BaseController - handleException
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' 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.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)