关于logic标签的问题

ggbin 2006-04-28 11:56:18
我用logic:iterate遍历结果集时,出现了遍历重复,我用的是struts架构,在action中处理连接数据库,例如:
我遍历的信息是:
用户名
11
22
33
在我刷新后提交,他显示为:
用户名
11
22
33
11
22
33
我再次刷新,他又加一条记录。四次之后他便抛出空指针异常。

这是为什么呢
...全文
121 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggbin 2006-04-29
  • 打赏
  • 举报
回复
多谢老兄,一句点针眼啊
hong_fang 2006-04-29
  • 打赏
  • 举报
回复
把ArrayList list = new ArrayList();这句定义放到execute方法中试试
ggbin 2006-04-28
  • 打赏
  • 举报
回复
我只是先测验一下,先输出一个值试试,结果和我所提问的类似
dong_lei30 2006-04-28
  • 打赏
  • 举报
回复
form表单只有个OrderID???
ggbin 2006-04-28
  • 打赏
  • 举报
回复
谢谢!!
queensky 2006-04-28
  • 打赏
  • 举报
回复
在你的while循环里面加上一句list.clear()方法,就可以了。
ggbin 2006-04-28
  • 打赏
  • 举报
回复
session的我也试过了,也不行,难道用page么
这是jsp中的部分代码:
html:form action="/orderAction.do" method="post">
<html:submit> </html:submit>
<html:text property="orderID">
</html:text>
</html:form>
<table border="1" bgcolor="ccff99">
<tr>
<td>订单号</td>
<td>用户编号</td>
<td>11111111111</td>
<td>提交时间</td>
<td>总价</td>
<td>是否付款</td>
<td>狀態</td>
</tr>
<logic:present name="order">
<logic:iterate id="orderview" name="order">
<tr>1-----
<td>
<bean:write name="orderview"/>

</td>

</tr>
</logic:iterate>
</logic:present>
</table>
这是action中的代码:
package bookshop;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.io.*;
import java.util.ArrayList;
import javax.servlet.http.HttpSession;

public class orderAction extends Action {
Connection conn;
ArrayList list = new ArrayList();
ResultSet rst = null;
boolean bool = false;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
orderActionForm orderActionForm = (orderActionForm) form;

DBOperation db = new DBOperation();
String orderID = orderActionForm.getOrderID();
request.setAttribute("order", null);
System.out.println("orderid==============" + orderID);
try {
String sql = "select * from shop_user where userid ='" + orderID +
"'";

System.out.println("得到连接¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥");
rst = db.select(sql);
System.out.println("select++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%" + sql);
while (rst.next()) {
list.add(rst.getString(1));
System.out.println("rst.getString = " + rst.getString(1));
list.add(rst.getString(2));
bool = true;
request.setAttribute("order", list);

}

} catch (SQLException ex) {

System.out.println("Exception!!!!!!!!!!!!!" + ex.toString());
}

return mapping.findForward("success");

// return new ActionForward(mapping.getInput());
}
}
dong_lei30 2006-04-28
  • 打赏
  • 举报
回复
Scope="reque4st" ?
不行?
ggbin 2006-04-28
  • 打赏
  • 举报
回复
刚开始我以为是request范围的问题 ,结果不是。他老是不释放。
大家帮帮忙吧。 我为这个耽误了一天了。

67,513

社区成员

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

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