这部分内容就准备写得简略一点了。大家可以自己试一下。
部门列表查询完善
数据库导入的数据不足10条,所以我们调整一下分页组件。
调整util中的pagesize常量为5。
查询详情
在DeptAction下继续做一个查看详情的方法。
这里一定要注意jsp中的方法调用的action与action的对应关系。
再做个新增方法
1,父部门的选择要选出所有的部门
<!-- struts2标签 下拉列表
在base。jsp中导入了struts 的tag
name表示代表下拉框名称
list代表绑定的集合
headerkey代表就是请选择的key
headervale代表首选项value
listkey=option的value
listvalue=option的文本
实栈有2个区域,contents和root,加入井号应该是放入contents
上面的内容是struts的内容,我不准备搞struts了。
-->
<s:select name="parent.id" list="#deptList" headerKey="" headerValue="--请选择--" listKey="id" listValue="deptName"></s:select>
2,放入值栈的栈顶
由于是集合,所以在这里需要用put的方法压入值栈中。
补充一个修改的方法
注意的内容是:
如果直接使用页面上传过来的model的话,会造成数据的丢失。所以在进行saveorupdate的时候,需要先根据id取出来这套记录,然后把这条记录修改的内容进行修改后,再进行更新。
解决小bug:不允许自己是自己的父部门
补充一个删除的方法
注意的内容是:
删除的时候具有同名框的一组值如何操作。
- 如果服务器端是string类型,struts默认会采用“逗号+空格”做封装
如果服务器端是Integer类型,就会只保留最后一个值
关于删除的注意点:
如果删除部门没有子部门,直接删除。
- 如果删除部门有子部门,将子部门也删除。
如果直接删除的话,会由于删除顺序产生bug,比如先产出的父部门的id,子部门也会被删除,而循环删除的子部门的时候就会产生异常。所以我采用的是逻辑删除。不知道是否正确。
我准备把代码提交一下。
这是我GitHub仓库https://github.com/liuyang19900520/liussh.git