在JSP以及用taglib实现有些不同,请看一下实现下拉列表的JSP代码:
<SELECT name="classid">
<option value="0">--请选择部门--</option>
<% Vector listclass = new Vector();
DispClass dispclass = new DispClass();
listclass = dispclass.allClass();
for(int i=0;i<listclass.size();i++) {
IClass classinfo = (IClass)listclass.elementAt(i);%>
<option value="<%=classinfo.getID()%>" <%if (classinfo.getID()==sclassid)
{out.println("selected");}
%>><%=classinfo.getName()%></option>
<%}%>
</SELECT >
看的眼花了吗?看到的ID是value而Name是Lable不过是在一个vector里先装好了lable和vlaue而已了,以上而且有一个是selected的 如果你在想触发一个什么东西呢加一个change就ok拉
在看看我用Taglib做的下拉效果的代码:
<bean:define id="_deptList" name="listSearchForm" property="departmentList" type="java.util.Collection" scope="request" />
<html:select property="deptId" size="1">
<html:options collection="_deptList" property="value" labelProperty="label" />
</html:select>
有什么不同呢?没什么不同 比以上的代码而言,主要是把以上在jsp里写的java代码都已经先写好拉,所以我不用在进行处理拉,直接显示出来就ok拉?
在公司用的又是另外一套了:) Javabean都没用 直接用rs.next();强悍吧?代码全部在jsp里头
比如假设我的labe是rs.getsString(1)而我的value是rs.getString(2)的话,声明两个list拉
java.util.ArrayList list1 = new java.util.ArrayList();
java.util.ArrayList list2 = new java.util.ArrayList();
如果第一个option为空的话,加上一下代码:
list1.add("");
list2.add("");
while(rs.next()){
list1.add(rs.getString(1));
list2.add(rs.getString(2));
}
<SELECT name="testselect">
for(java.util.Iterator it = list1.iterator();it.hasNext();){
String str1 = (String)it.next();
<option value="str1"><%out.print(str1)%></option>
}
</SELECT>
我记得我就是这么写的至于拿个value吗?赫赫 在另一个页面我在根据labe在拿一次value就ok拉
写多了看多了就不会觉得头晕了的