首先来看一下我要做的东西,一个简单的运用springMVC做一个管理员的增删改查的表。在jsp界面中用onclick方法调用go
这里是go方法一个简单的转向
然后他会调用controller里的add,这里add加在了requestmapping的注解里,
因为在xml文件中加了.jsp后缀会自动return user.jsp。
在user.jsp里有个判断方法,如果传过来的参数id不为空,则执行insert,这里判断是为了和update方法区分,因为修改是会指定某一行,有id参数传参。
判断后,form表单提交转向controller,执行insert
这里用的是ajax,因为错误不是出在这里就不过多概述。最后执行保存。
在这里错误就出现了,虽然数据新增成功了,但是执行了两遍,
因为并没有报错,为了找出错误,我在controller里的每个方法都加了system舒服一下,结果
试了很多地方也没发现原因,最后只能在save方法里做尝试。终于在这里找到了病因,改下这样之后,问题就迎刃而解了。
因为我是初学者,所以很多细节属性了解的不多,在这里专门查了一下,如果不加type=button的话,button在这里默认为submit属性,会再提交一次,所以不论是insert还是update都会执行两次,W3C给出的标准是:Internet Explorer 的默认类型是 “button”,而其他浏览器中(包括 W3C 规范)的默认值是 “submit”。所以,为了避免再犯错误,最哈养成习惯,在使用button的时候随手为按钮规定 type 属性。button的type属性有三种类型:submit,button,reset。button-普通按钮,submit-提交按钮。
submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上。
写的东西比较简单,但是错误是真的刻骨铭心。找了一天半,希望能帮到大家。
关于一条sql语句执行两遍的问题
最新推荐文章于 2024-07-09 17:16:40 发布