29:修改回显员工信息
第30:修改ajax发送的put请求方式:
**<!--将指定的post请求转换为delete和put请求 --> **
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
上面这个web.xml中配置的过滤器可以将post请求转换成put请求
如果是页面的表单提交,我么可以method=post带一个_method=put的值
报错405:Message Request method ‘POST’ not supported
原因表单序列化后的提交数据没有_method=“PUT”
更改后,数据库数据并没改变。需要注意在控制器方法中requestMapping的值 地址/{id}其中的id是传入的id的属性名保持一致,这样可以修改成功
alert($(this).val())
$.ajax({
type:"POST",
data:emp+"&_method=PUT",
//这里的难点是如何获得员工的id_利用编辑按钮会保存员工id传递给更新按钮
url:"update_emp/"+$(this).attr("emp_id"),
success:function(data){
第31:修改完成
第二种方法:直接发送"PUT"请求而不去加入_method和“post”请求来转换
如果直接发送ajax的put请求
封装的数据data中除了id传入正确其他的数据全部是null 实体类对象封装不上请求体中的数据:
原因:tomcat的原因:
1.将请求体中的数据封装成一个map
2.request.getparameter就会从这个map中取值
3.springmvc封装pojo对象的时候,会调用getparameter方法拿到每个pojo属性的值
4但是ajax发送的put请求,请求体中有数据但是tomcat没有封装到map中
5.tomcat默认是不封装put请求的请求体中的数据 ,只有post请求才会封装请求体成map集合。
注意在ajax发送请求的success的function回调函数中$(this)指的是:
方法是:在web.xml中重新配置一个过滤器:HttpPutFormContentFilter这个过滤器也是拦截所有
1.配置上httpputformcontentfilter到wetxml中
2.它会将put请求体中的数据封装成map
3.request被重新包装,getparameter被重写,
type:"PUT",
url:"update_emp/"+$(this).attr("emp_id"),
data:emp,
success:function(data){
如何传递当前的第几页的数据到更新的地方显示,方法1:可以使用全局变量
方法2:可以更改按钮传值。
第32:删除功能的提供
单个删除和批量删除
单个删除的删除逻辑:ulr:/项目名/控制器名/{id}传入的id
当要给动态添加的按钮添加点击事件的时候用 ( d o c u m e n t ) . o n ( " c l i c k " , " 按 钮 的 选 择 i d " , f u n c t i o n ( ) ) 需 要 获 得 员 工 的 名 字 : 寻 找 动 态 创 建 的 标 签 内 容 方 法 : (document).on("click","按钮的选择id",function(){ }) 需要获得员工的名字:寻找动态创建的标签内容方法: (document).on("click","按钮的选择id",function())需要获得员工的名字:寻找动态创建的标签内容方法:(this).parent(“tr”).find(“td:[1]”)
第33批量删除:创建全选全不选的span单选框
prop方法可以获取dom原生的属性值,attr可以获取自定义的属性的值
完成 单选框的点击事件:以及全选全不选和单选的逻辑
ckeckbox
在创建表格的时候建立一个checkbox的input这里应该用class定义不用id因为会用class选择器选择一组。
第34批量删除的方法:
首先:设置批量删除的id的集合,查找批量删除的ID集合和获得所有选择的用户的用户名的集合: