HTTP Status SpringMVC 405 - The "POST" request method is not supported

I have a form, I request a database from this form and is sent to another page with the results. Then I select one entry from the query results, and it returns me to the page from which I made the request, so I can update the record.

I click update, which returns me to the controller, and to the same method that first called the request, however, the requested parameter is now "updated", so it is assumed that it goes to the update condition in the method. It seems I cannot resubmit the page to the same URL mapping.

controller

@RequestMapping(value="citizen_registration.htm", method = RequestMethod.POST) public ModelAndView handleRequest(@Valid @ModelAttribute Citizens citizen, BindingResult result, ModelMap m, Model model, @RequestParam(value="user_request") String user_request) throws Exception { try{ logger.debug("In Http method for CitizenRegistrationController - Punishment Registration"); logger.debug("User Request Is " + user_request); if(result.hasErrors()){ //handle errors // return new ModelAndView("citizen_registration"); }else{ //check if its a save or an update if(user_request.equals("Save")) //do save else if (user_request.equals("Query")) //do query else if (user_request.equals("Update")) //do update } } 

Error log

 34789 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Bound request context to thread: org.apache.catalina.connector.RequestFacade@2ba3ece5 34791 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - DispatcherServlet with name 'crimetrack' processing POST request for [/crimeTrack/getCitizen/citizen_registration.htm] 34792 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Testing handler map [org.springframework .web.servlet.mvc.method.annotation.RequestMappingHandlerMapping@ 3a089b3] in DispatcherServlet with name 'crimetrack' 34792 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Looking up handler method for path /getCitizen/citizen_registration.htm 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - Resolving exception from handler [null]: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - Resolving exception from handler [null]: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [null]: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 34796 [http-bio-8084-exec-3] WARN org.springframework.web.servlet.PageNotFound - Request method 'POST' not supported 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Null ModelAndView returned to DispatcherServlet with name 'crimetrack': assuming HandlerAdapter completed request handling 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@2ba3ece5 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Successfully completed request 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.context.support.XmlWebApplicationContext - Publishing event in WebApplicationContext for namespace 'crimetrack-servlet': ServletRequestHandledEvent: url=[/crimeTrack/getCitizen/citizen_registration.htm]; client=[127.0.0.1]; method=[POST]; servlet=[crimetrack]; session=[null]; user=[null]; time=[8ms]; status=[OK] 34796 [http-bio-8084-exec-3] DEBUG org.springframework.web.context.support.XmlWebApplicationContext - Publishing event in Root WebApplicationContext: ServletRequestHandledEvent: url=[/crimeTrack/getCitizen/citizen_registration.htm]; client=[127.0.0.1]; method=[POST]; servlet=[crimetrack]; session=[null]; user=[null]; time=[8ms]; status=[OK] 

Firebug

FireBug check I got this "NetworkError: 405 Method Not Allowed - http://localhost:8084/crimeTrack/getCitizen/citizen_registration.htm" , it should be http://localhost:8084/crimeTrack /citizen_registration.htm "

GetCitizen is the page I was taken to when the request was first executed and it was included in the URL.

I changed the definition of the jsp form action to <form:form id="citizenRegistration" name ="citizenRegistration" method="POST" commandName="citizens" action="<%=request.getContextPath()%>/citizen_registration.htm"> however, when I launch the application and make a request to this page, I get:

 HTTP Status 500 - /WEB-INF/jsp/citizen_registration.jsp (line: 31, column: 116) attribute for %>" is not properly terminated 
+4
source share
1 answer
 function submitPage(){ document.getElementById("citizenRegistration").action="getCitizen/citizen_registration.htm"; document.getElementById("citizenRegistration").target="_self"; document.getElementById("citizenRegistration").method = "POST"; document.getElementById("citizenRegistration").submit(); } 

you can call the method as above. link function for submit button using onclick

+2
source

Source: https://habr.com/ru/post/1469321/


All Articles