用的actoin做的请求遍历数据库,每次一刷新,数据就会接着又打印一遍,有没有什么方法结局呢?

解决方案 »

  1.   

    package cn.com.hnkj.action;import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Timestamp;
    import java.util.ArrayList;
    import java.util.List;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.MappingDispatchAction;import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;import cn.com.hnkj.dao.*;
    import cn.com.hnkj.dao.database.ConnManager;
    import cn.com.hnkj.domain.XS;
    public class ConnectionAction extends Action{
    ConnManager cm = new ConnManager();
    String as_jndiname;
    String asUser;
    String asPass;
    ResultSet rs = null;
    PreparedStatement ps = null;
    Connection  con  = null;
    Object[] obj;
    XS xs = null;
    int i;
    List<XS> list = new ArrayList<XS>();
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    QueryDAO qd = new QueryDAO();

    String sql="select * from XS";
    ArrayList<Object[]> infoList = qd.executeQuery(sql);
    for(i=0;i<qd.getRowCount()+1;i++){
    obj =infoList.get(i);
    if(i!=0){
    xs=new XS();
    String c = (String) obj[1];
    System.out.print(c);
    String s = (String) obj[2];
    System.out.print(s);
    xs.setCode((String)obj[1]);
    xs.setName((String) obj[2]);
    xs.setZhuanye((String) obj[3]);
    xs.setSex((Integer) obj[4]);
    xs.setChusheng((Timestamp) obj[5]);
    xs.setXuefen((Integer) obj[6]);
    xs.setBeizhu((String) obj[7]);
    list.add(xs);
    }}System.out.println(list.size());
    request.setAttribute("alllist", list);
    return mapping.findForward("success");
    }}
    这是jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="/WEB-INF/site.tld" prefix="site" %>
    <c:forEach items="${alllist}" var="all">
    <tr>
    <td><c:out value="${all.code}"></c:out></td>
    <td>${all.name}</td>
    <td>${all.zhuanye}</td>
    <td>${all.sex}</td>
    <td>${all.chusheng}</td>
    <td>${all.xuefen}</td>
    <td>${all.beizhu}</td>
    <td><a href="goupdate.do?code=${all.code}">修改</a></td>
    </tr><br>
    </c:forEach>

    每次请求页面时,数据都重复一遍上面的数据
      

  2.   

    你是不是刷新的时候 有调用了相同的方法  如果调用相同的方法则全部打出来 。  你可以另外写一个方法
      如果这样还不好  那你就用Ajax进行控制。