Spring POST 请求的控制器 405 错误
Spring Controller 405 errors for POST request
我正在关注这个 Tutorial。它有一个构建错误,我通过在 POM.xml
中添加以下代码来修复
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
该项目按预期运行良好。现在我添加了一个简单的表单,它向控制器发送一个 post 请求。搜索页面如下所示
<form name='SearchForm' action="<c:url value='/search' />" method='POST'>
<center>Search By Name : <input type="text" name="name" id="name" /><input type="Submit" name="action" value="Search"> </td></center>
</form>
控制器看起来像这样(即使我硬编码搜索参数,请求也没有到达控制器)
@ResponseBody
@RequestMapping(value="/search" , method=RequestMethod.POST)
public ModelAndView searchUser(HttpServletRequest request, HttpServletResponse response){
ModelAndView model = new ModelAndView("searchPage");
model.addObject("userDTOList", userService.searchUser("sam"));
return model;
}
我有相关的服务和模态以及 DAO 类 来进行检索。如果我将请求更改为 GET,它会按预期工作。但是当我尝试 POST 方法时,我得到 405 异常。
HTTP Status 405 - Request method 'POST' not supported
我做错了什么?提前致谢
本教程使用 springSecurityFilterChain 配置了 CSRF 保护和
Spring 安全 3.2.3 所以将以下内容添加到您的 searchpage.html :
<input type="hidden"
name="${_csrf.parameterName}"
value="${_csrf.token}"/>
我正在关注这个 Tutorial。它有一个构建错误,我通过在 POM.xml
中添加以下代码来修复<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
该项目按预期运行良好。现在我添加了一个简单的表单,它向控制器发送一个 post 请求。搜索页面如下所示
<form name='SearchForm' action="<c:url value='/search' />" method='POST'>
<center>Search By Name : <input type="text" name="name" id="name" /><input type="Submit" name="action" value="Search"> </td></center>
</form>
控制器看起来像这样(即使我硬编码搜索参数,请求也没有到达控制器)
@ResponseBody
@RequestMapping(value="/search" , method=RequestMethod.POST)
public ModelAndView searchUser(HttpServletRequest request, HttpServletResponse response){
ModelAndView model = new ModelAndView("searchPage");
model.addObject("userDTOList", userService.searchUser("sam"));
return model;
}
我有相关的服务和模态以及 DAO 类 来进行检索。如果我将请求更改为 GET,它会按预期工作。但是当我尝试 POST 方法时,我得到 405 异常。
HTTP Status 405 - Request method 'POST' not supported
我做错了什么?提前致谢
本教程使用 springSecurityFilterChain 配置了 CSRF 保护和 Spring 安全 3.2.3 所以将以下内容添加到您的 searchpage.html :
<input type="hidden"
name="${_csrf.parameterName}"
value="${_csrf.token}"/>