我直接
<form action="updateUser" method="put">
<input type="hidden" name="id" value="${company.id }"/>
賬號:<input type="text" name="username" value="${company.username }"/><p/>
狀態:<input type="text" name="status" value="${company.status }"/><p/>
<input type="submit" value="修改"/>
</form>
tomcat 報錯404,
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
後來才知道,form不支持put。
解決辦法:
在web.xml增加過濾器
<!-- 增加HiddenHttpMethodFilte過濾器:給普通瀏覽器增加 put|delete請求方式 -->
<filter>
<filter-name>HiddenHttpMethodFilte</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilte</filter-name>
<!-- 過濾所有:/* -->
<url-pattern>/*</url-pattern>
</filter-mapping>
前端調用接口的時候,多增加一個_method屬性,即可
<form action="updateUser" method="post">
<input type="hidden" name="_method" value="put" />
<input type="hidden" name="id" value="${company.id }"/>
賬號:<input type="text" name="username" value="${company.username }"/><p/>
狀態:<input type="text" name="status" value="${company.status }"/><p/>
<input type="submit" value="修改"/>
</form>
controller代碼:
@PutMapping("/updateUser")
@ResponseBody
public ModelAndView updateUser(HttpServletResponse response,User user) {
ModelAndView modelAndView = new ModelAndView();
userService.updateUser(user);
modelAndView.setViewName("redirect:/listAll");
return modelAndView;
}