解決ssm項目使用restful,前端form不支持put

我直接

	<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;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章