jsp——动态加载下拉框

正文

  最近小菜接到这样一个需求,动态加载下拉框,就是根据情况而加载,满足条件了加载不满足就不加载。

◆思路

  首先看到“动态加载下拉框”,别的不知道,但一听到下拉框,下拉框下拉时肯定会有很多选项,至少后端得把这些下拉选项查好返回一个集合,然后前端再循环这个集合放到下拉选项中,也就是一个list。然后我们得考虑“动态加载”了,动态加载就是刚才说的视情况而加载,既然要视情况而定肯定少不了判断啦。那如何判断呢?在哪些地方做判断呢?
1、不加载下拉框
  不加载下拉框也就是说连数据都不要返回了,返回在Controler中写,也就是必不可少的就是要在Controler中做判断,在此情况下直接就不用调返回数据的接口和给前端返回数据了
2、加载下拉框
  加载下拉框其实也就是要要调接口然后再给前端返数据,最后jsp再循环返回的数据。
  综上为了简便重复代码就是在Controler和jsp中都加上判断,如何加呢?请看下边的代码部分。

◆代码

1、Controler

//getToken获取到的值为-1就加载地区下拉框,否则不加载
    @RequestMapping("/index")
    public String index(Active bean, Active act,HttpServletRequest request, HttpServletResponse response, ModelMap model) {
        if (getToken().equals("-1")){
            //查询地区表中的所有地区
            List<Token> regionList = tokenService.selectByParam(null);
            //把list传给jsp
            model.addAttribute("regionList", regionList);
            //isToken用于jsp判断是否加载下拉框,为1时加载
            model.addAttribute("isToken", 1);
        }
        //返回jsp
        return  getTheme() +"/../../index";
    }

2、jsp

<c:if test="${isToken eq 1  }">
                    <select name="regionId" class="select" id="regionId" style="width:200px;height: 30px;">
                        <option value=''>地区</option>
                        <c:forEach items="${regionList}" varStatus="regionList">
                            <c:set var="region" value="${regionList.current}"/>
                            <option <c:if test="${act.regionId==region.id }">selected</c:if>
                                    value="${region.id}">${region.sysName}</option>
                        </c:forEach>
                    </select>
    </c:if>



猜你喜欢

转载自blog.csdn.net/whm18322394724/article/details/81590092