jsp下拉框联动

我的action往前台传了一个List,里面放的都是class对象。前台jsp用<s:select>标签显示class_name,我想根据选择的class_name联动取... 我的action往前台传了一个List,里面放的都是class对象。前台jsp用<s:select>标签显示class_name,我想根据选择的class_name联动取出对应的class_id和class_major二个值。<s:select label="班级名称" list="classes" listKey="class_id" listValue="class_name" id="se001" value="class_id" name="student.class_name" onchange="doChang(this.value)">这样我可以得到class_id,但是我该如何得到class_major的值呢?该怎么遍历呢?
这个问题应该不需要用到ajax,List已经在页面了,只是要根据class_name和class_id找到对应的class_major,应该是在页面做循环就好了
展开
 我来答
那年de夏0106
2014-08-20 · TA获得超过118个赞
知道答主
回答量:113
采纳率:100%
帮助的人:106万
展开全部
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

<%
/*
级联菜单形式,最好由ajax做,那样页面显示的更友好,现在使用javascript演示
已经测试通过,具体操作请按情况区别。

*/

/*-------------------------Method----------------------------*/

/*第一级菜单 封装成Map集合,方便页面取值*/
Map<String,String> mapOne = new HashMap<String,String>();
mapOne.put("A","A");
mapOne.put("B","B");
%>

<!-- 该javascript用来生成二级联动菜单 -->
<script type="text/javascript">
/*声明两个数组,以便区别,具体操作,应该是通过底层返回一个list*/
var one = new Array("白色","红色","黄色");
var two = new Array("黑色","蓝色","灰色");

/*该函数,控制二级级联操作*/
function specieSelChange(selBox)
{
/*
这些数据需要重数据库中取,我没有连接数据库,所以自己拟定数据,数据封装根据具体情况而定
这是第二级菜单,需要级联的菜单
*/
var str = "<select>";
if(selBox.value == "A")
{
for(var i = 0; i < one.length; i ++)
{
str += "<option>" + one[i] + "</option>";
}
}
else if(selBox.value == "B")
{
for(var i = 0; i < two.length; i ++)
{
str += "<option>" + two[i] + "</option>";
}
}
str += "</select>";
document.all('Linkage').innerHTML = str;
}
</script>

</head>

<body>

<!-- 页面开始解析数据 首先是第一个下拉框-->
<table border="0" align="center" style="font-size: 12px;">
<tr>
<td>请选择种类:</td>
<td>
<!-- 页面使用循环取出数据 如果需要更标准,请使用jstl标签,或者struts标签 -->
<select id="SpecieSel" onchange="specieSelChange(this)">
<%
Iterator it = mapOne.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
%>
<option value="<%=(String)entry.getKey() %>">
<%=(String)entry.getValue() %>
</option>
<%} %>
</select>
</td>
</tr>
<!-- 第二个下拉框,开始执行二级联动 -->
<tr>
<td>
二级联动下拉框:
</td>
<td id="Linkage">
<!-- 该下拉框,使用自动生成 -->
<select>
<option>---请选择---</option>
</select>
</td>
</tr>
</table>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新时代智者
2014-08-22 · 超过28用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:48.8万
展开全部
用el与jstl表达式一下解决。 我随便copy一段吧
eg:
<c:forEach var="b" varStatus="status" step="1" items="${provddMap }">
<li datavalue="${b.PPKEY }" class="cus-sel-opt" name="PrvCd_bank">
<span class="cus-sel-opt-txt">${b.PPNAME}</span>
</li>
</c:forEach>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式