Logic:iterator奇怪问题,急,在线等!!

sxiaofen 2007-03-06 08:49:24
我在一个ArrayList里面封装所有数据库取出来的数据,ArrayList里面放Vector,然后把ArrayList放到request对象,最后在JSP页面显示,代码如下:
ResultSetMetaData tm = rs.getMetaData();//rs为结果集,查询Northwind数据库语句为select * from Orders where EmployeeID=?
int lieshu = tm.getColumnCount();//获取结果列数
//rs的数据付给al
while(rs.next())
{
//把每一行封装一个Vector

Vector vt = new Vector();
/*********代码1 begin*******/
for(int i=1;i<lieshu+1;i++)
{
vt.add(rs.getString(i));
}
/*********代码1 end*******/

al.add(vt);

}
request.setAttribute("result",al);
最后在jsp页面用logic:iterator显示
<logic:present scope="request" name="result">
<table width="700px" bgcolor="#8080ff" border="1">
<logic:iterate scope="request" name="result" id="vt">

<tr>
<logic:iterate name="vt" id="lname">
<%-- 对Vector进行循环--%>
<td>
<bean:write name="lname"/>
</td>
</logic:iterate>
</tr>
</logic:iterate>

</table>
</logic:present>
如果代码是上面这样,就会什么也不显示,后台抛出异常:

javax.servlet.jsp.JspException: Cannot find bean lname in any scope
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:934)
at org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)……
但是当我把代码1改成
vt.add(rs.getString(1));
vt.add(rs.getString(2));
vt.add(rs.getString(3));
vt.add(rs.getString(4));
vt.add(rs.getString(5));
vt.add(rs.getString(6));
vt.add(rs.getString(7));
这时页面根据条件不同会显示部分数据,数量不一定,但是后台还是报那个异常,如果说数据类型不对,应该一行也不显示才对,如果代码1不改,我把sql语句改成只查询前三个字段就没有问题,但是如果我把代码1改成vt.add(rs.getString(1));
vt.add(rs.getString(2));
vt.add(rs.getString(3));
sql不变,错误就变了,成javax.servlet.jsp.JspException: No collection found,数据也是显示一部分然后报错,
我看数据表也就那么几种类型,长度也没有什么影响啊,我怀疑是Logic:iterator本身问题,不知道是不是,请高手指教,不胜感激!!!在线等
...全文
202 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧