动态获取 - 添加数据时先查询表

比如, 我们在添加 员工信息 时, 需要选中该员工所分配的部门名称, 这个部门名称不能在添加 员工信息 的 form 表单中写死, 如果这个部门一旦撤离, 又要在前台页面修改添加 员工信息 的 form 表单中部门的信息, 所以我们需要从部门表中动态获取 当前所开设的部门, 让这些部门信息自动显示在要添加 员工信息 的 form 表单中. 

如何实现该功能? 我们需要在当用户点击 新建员工信息 时, 后台执行的顺序是先查询 部门 表中的 部门编号 和 部门名称, 然后将查询到的结果封装到 List<Dept> 中, 再将该结果返回到添加 员工信息 的 form 表单页面上.

我们还是基于上一篇文章进行编写 : https://blog.csdn.net/weixin_42629433/article/details/83379538

下面我们做具体演示操作:

1. 用户点击 新建员工信息 请求:

<button type="button" class="btn btn-default" title="新建" onclick="location.href='${pageContext.request.contextPath}/dept/findDeptIdsAndDeptNames.do'">
    <i class="fa fa-file-o"></i> 新建
</button>

2. 后台接收到请求查询部门表中 部门编号 和 部门名称

controller 层:

@RequestMapping("/findDeptIdsAndDeptNames.do")
public ModelAndView findDeptId(){
    ModelAndView mv = new ModelAndView();
    List<Dept> deptIdsAndDeptNames = deptService.findDeptIdsAndDeptNames();
    System.out.println(deptIdsAndDeptNames);
    mv.addObject("deptIdsAndDeptNamesList", deptIdsAndDeptNames);
    mv.setViewName("emp-add");
    return mv;
}

service 层接口:

//查询所有 deptId 和对应的 deptName
public List<Dept> findDeptIdsAndDeptNames();

service 层接口实现类:

public List<Dept> findDeptIdsAndDeptNames() {
    return deptDao.findDeptIdsAndDeptNames();
}

dao 层接口:

//查询所有 deptId 和对应的 deptName
@Select("select id,deptName from dept where deptStatus = 1")
public List<Dept> findDeptIdsAndDeptNames();

3. 添加员工信息页面

前台获取到后台 controller 层的 ModelAndView 视图, 携带视图中查询到的 部门编号 和 部门名称的集合 跳转到指定 添加员工信息 的视图页面, 前台选择 部门 处的改动如下:

<div class="col-md-2 title">部门</div>
<div class="col-md-4 data">
    <select id="deptId" class="form-control select2" style="width: 100%" name="deptId">
        <option value="noSelect" selected="selected"><--请选择--></option>
        <c:forEach items="${deptIdsAndDeptNamesList}" var="Dept">
	    <option value=${Dept.id}>${Dept.deptName}</option>
	</c:forEach>
    </select>
</div>

 

 

代码下载: https://pan.baidu.com/s/1M_VVsq4oWbucaESeqmxjug

***此代码需在 jdk1.8 下运行使用***

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值