在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拉
写多了看多了就不会觉得头晕了的