首页 > 解决方案 > 由于“不支持请求方法'POST'”,Hibernate 无法持久化对象

问题描述

我遇到以下问题:

这是我的表单代码:

<form:form class="form-material validate-form" modelAttribute="Usuario_form" action="${pageContext.request.contextPath}/FormActionUser" method="POST" id="userForm">

这是我的控制器代码:

@RequestMapping(value = "/FormActionUser", method = RequestMethod.POST, params = "Crear")
  public ModelAndView CrearUsuario(HttpServletRequest request, HttpServletResponse response,
  @ModelAttribute("Usuario_form") Usuario usuario_form) {
    System.out.println("*****" + request.getMethod() + "*****");
    usuario_servicio.AgregarUsuario(usuario_form);
}

当然输出System.out.println("*****" + request.getMethod() + "*****");*****POST*****

这是我的usuario_servicio.AgregarUsuario(usuario_form);代码:

public void AgregarUsuario(Usuario u) {
  Session session = this.sessionFactory.getCurrentSession();
  session.persist(u);
}

我得到了org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.logException Resolved exception caused by handler execution: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported错误。

标签: javaspringhibernate

解决方案


通过 POST 请求发送表单时尝试发送 csrf 令牌。将下一个输入添加到您的表单中:

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>

推荐阅读