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>
还没有评论,来说两句吧...