道非道 非常道

勤思、谨言、慎行、厚积、薄发

统计

web

天圆

经济 政治 军事

键康

原始 JSP 页面 在 二级联动显示

 1  Area 类:
 2  public class Area{
 3 private List emportias = new ArrayList(); /* 第二级 */
   private String aname = null;
 4  }
 5 
 6 
 7 jsp 页面:
 8 <select name="city" id="city"onchange="bizAreas(this.options[this.selectedIndex].value)">
        
/* 数据存储到 request 对象中,一级显示,没什么大问题 */
 9    <c:forEach items="${list}" var="list">
10        <option value='${list.aname}'>
11            ${list.aname}
12        </option>
13     </c:forEach>
14 </select>
15
 1 function bizAreas(value)
 2   {
 3     var obj = document.getElementById("b1"); /*得到二级联运的对象 */
 4        /* 清空下拉列表框对象 */
 5       while (obj.options.length>0)
 6        {
 7           obj.options.remove(0);
 8        } 
 9             
10        <%
             /* 先循环第一级的集合,并提取形字 Area 类对象 */
11           List list = (List)request.getAttribute("list");
12            for(int i=0;i<list.size();i++){
13               Area a = (Area)list.get(i);
14        %>     /* 判断第一级选择的值等于集合中的那个值,再循环这个对象下的二级集合 */
15              if(value == '<%=a.getAname()%>'){
16        <%     /* 循环二级,并把它添加到 select 对象中 */
17            for(int j=0;j<a.getEmportias().size();j++){
18               Emportia em = (Emportia)a.getEmportias().get(j);
19        %>
20             bj.options.add(new Option('<%=em.getEname()%>','<%=em.getEname()%>'));                            
21        <%
22         }
23         %>
24         }
25        <%
26        }
27       %>
28       alert(value);
29
32  }

    太原始了,页面上都出现了JAVA代码,
不过现在功力有限,如果有更好的 tag 或者 代码,希望跟我联系.
    这种方案不好的地方是:要第一次将数据全部显示在页面上.加载会很慢.适合数据量小的页面.如果数据量很大,
    还是用Ajax 技术吧.
   



posted on 2008-11-25 17:44 星期五 阅读(208) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: