日期:2014-05-18  浏览次数:20617 次

我的首个JSTL程序就出错...大家指点一下..昨天晚上都今天一直没解决.
<jsp:useBean id="machine" class="ynu.edu.cn.Machine"/> 
<jsp:useBean id="machines" class="ynu.edu.cn.DB_unUseredMachines"/> 
<jsp:useBean id="unUseredMachines" class="java.util.ArrayList"/> 
<% 
dbconn.ConnectDB(); 
machine=new Machine();(javabean) 
unUseredMachines=machines.list_unUseredMachines();(利用方法获得数据库里的信息) %> 

<select name="unUseredMachine"> 
<c:forEach var="machine" items="${unUseredMachines}"> 
<option value="machineb"> 
<%=machine.getMachineName()%> (或者${machine.machineName}都不行) 
</c:forEach> 
</select> 
大家帮我看下哪里出错 为什么下拉表单总是不能显示东西...... (machine是个javabean,而 unUseredMachines是个包含machine的arraylist类型)

而下面这段不用jstl可以 
<form action="index.jsp"> 
<select name="unUseredMachines"> 
<% 
for(int i=0;i<unUseredMachines.size();i++) { 
machine = (Machine) unUseredMachines.get(i); 
%> 
<option value="machinee"> 
<%=machine.getMachineName()%> 
<% } 
%> 
</select></form> 
由于下面这段不用jstl 代码比较乱,我还是希望用jstl一下.....希望指点一下...

------解决方案--------------------
machines.list_unUseredMachines();这个获取的是什么东西,能获取吗?你可以参看下面
machine = (Machine) unUseredMachines.get(i);
------解决方案--------------------
不太明白,关注一下!!!
------解决方案--------------------
<option>.......</option>
------解决方案--------------------
关注
------解决方案--------------------
<%
dbconn.ConnectDB();
unUseredMachines=machines.list_unUseredMachines();(利用方法获得数据库里的信息) %>

<select name="unUseredMachine">
<c:forEach var="machine" items="${unUseredMachines}">
<option value="machinee">${machine.machineName}</option>
</c:forEach>
</select>
试一下
就是把machine=new Machine();(javabean) 给去掉
------解决方案--------------------
jsp和jstl能互用吗?
对此表示怀疑,你可以用<sql:>获得结果集。那样保证能用。
------解决方案--------------------
JSTL的数据来源好像是在Request和Session对象中寻找,你这个对象unUseredMachines是在当前jsp中产生的,可能会导致JSTL找不到.
你试一试把unUseredMachines放在Request对象中:
request.setAttribute("UnUseredMachines",unUseredMachines);
.....
<c:forEach var="machine" items="${UnUseredMachines}"> 
......