解决ssm项目使用restful,前端form不支持put

本文介绍了解决Tomcat服务器上使用PUT方法时出现404错误的方法。通过在web.xml中配置HiddenHttpMethodFilter过滤器,并在表单中添加_method参数,可以实现对PUT和DELETE等HTTP方法的支持。

我直接

	<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;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值