如何解决不支持请求方法'POST'?

问题描述 投票:0回答:1

我想设计一个快速注册页面,当我提交字段时它放在页脚,它显示一些错误“请求方法POST不支持”。有人,请帮我解决这个错误。

我已将commandName形式的属性修改为modelAttribute,但仍然存在错误。

  1. 这是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>
  1. 这是我的控制器。
@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 "";
  }

它应该根据控制器中提到的业务行事。

spring jsp tags
1个回答
0
投票

使用@ResponseBody注释编写控制器方法并使用@RequestMapping注释的属性,如下所示:

@RequestMapping(value = "/setSubscribe", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
private String doSubscribe(@ModelAttribute("subscribeForm") final SubscribeForm form)
  {
      return "";
  }
© www.soinside.com 2019 - 2024. All rights reserved.