1.遇到问题

使用SpringMVC的数据绑定和表单标签时,点击表单按钮操作后出现 404 错误 :The request sent by the client was syntactically incorrect.如下图:spring数据绑定出现错误: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" %>


相关文章: