spring数据绑定出现错误:The request sent by the client was syntactically incorrect.(个人遇到问题解决)

1.遇到问题

使用SpringMVC的数据绑定和表单标签时,点击表单按钮操作后出现 404 错误 :The request sent by the client was syntactically incorrect.如下图:

2.发现问题根源

在Controller控制类中,用@RequestMapping(value = "/book_update"),然而显示的网址上却是http://localhost:8080/SpringMVCFormLabel/book_edit/book_update

比要转到的控制类方法多了一部分( 因为要更新之前经过另一个控制类的方法 ,先要执行 /book_edit/{id} ,执行了/book_edit/{id} 之后,再转到别的,就只有把{id}变掉,前面的book_edit保留)

3,解决

1) 在原来的@RequestMapping(value="/book_update")改为 @RequestMapping(value="/book_edit/book_update")

2)在提交表单时的action处改成 action = "../book_update" ;@RequestMapping(value="/book_update")不变

3)在提交表单时的action处改成 action = "/项目名/book_update";@RequestMapping(value="/book_update")不变

以上三种方法在复杂的项目下会比较复杂,第四种方法比较简单,不需要改@RequestMapping中的value,

在提交的时候加上获取上下文的代码即可,如下:

4) action="${PageContext.request.contextPath}/book_update"  

注意第四种方法在使用的时候,要确定jsp页面是不是支持EL表达式,如果不支持,要在jsp页面的上面添加一个page指令,如下: <%@ page isELIgnored="false" %>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值