如何解决不支持请求方法'POST'?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决不支持请求方法'POST'?相关的知识,希望对你有一定的参考价值。
我想设计一个快速注册页面,当我提交字段时它放在页脚,它显示一些错误“请求方法POST不支持”。有人,请帮我解决这个错误。
我已将commandName形式的属性修改为modelAttribute,但仍然存在错误。
- 这是jsp的前端。
<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <c:url value="/setSubscribe" var="subscribe"></c:url> <form:form action="${subscribe}" method="post" modelAttribute="subscribeForm"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <label class="form-check-label radio-inline"> <input type="radio" class="form-check-input" value="gender" name="gender" value="Male"/> Male </label> <label class="form-check-label radio-inline"> <input type="radio" class="form-check-input" value="gender" name="gender" value="Female"/> Female </label> <br></br> <div class="row"> <div class="col-sm-3"> <input class="form-control" name="firstName" placeholder="First Name"></input> </div> <div class="col-sm-3"> <input class="form-control" name="lastName" placeholder="Last Name"></input> </div> <div class="col-sm-3"> <input class="form-control" name="email" placeholder="Your Email Address"></input> </div> <div class="col-sm-3"> <button type="submit" class="btn btn-primary">SUBSCRIBE</button> </div> </div> </form:form>
- 这是我的控制器。
@RequestMapping(value = "/setSubscribe", method = RequestMethod.POST) private String doSubscribe(@ModelAttribute("subscribeForm") final SubscribeForm form) { final RegisterData registerData = new RegisterData(); registerData.setFirstName(form.getFirstName()); registerData.setLastName(form.getLastName()); registerData.setSex(form.getGender()); registerData.setLogin(form.getEmail()); final CerCustomerFacadeImpl customerFacadeImpl = new CerCustomerFacadeImpl(); try { customerFacadeImpl.newCerRegister(registerData, true); } catch (final Exception e) { e.printStackTrace(); } return ""; }
它应该根据控制器中提到的业务行事。
答案
使用@ResponseBody注释编写控制器方法并使用@RequestMapping注释的属性,如下所示:
@RequestMapping(value = "/setSubscribe", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
private String doSubscribe(@ModelAttribute("subscribeForm") final SubscribeForm form)
{
return "";
}
以上是关于如何解决不支持请求方法'POST'?的主要内容,如果未能解决你的问题,请参考以下文章
@ EnableOAuth2Sso时不支持请求方法'POST'