package com.new.article;
import com.new.db.*;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;
import com.new.article.*;public class GetArticleList {
private Collection coll;
private DBConnect conn;
private int articletotal;
private int pagetotal;
private int currentpage;

public GetArticleList(){
coll = new ArrayList();
conn = null;
articletotal = 0;
pagetotal = 0;
currentpage = 0;
}

public Collection getColl(){
return coll;
}
public DBConnect getConn(){
return conn;
}
public int getArticletotal(){
return articletotal;
}
public int getPagetotal(){
return pagetotal;
}
public int getCurrentpage(){
return currentpage;
}

public void articletotalcount(int classid){
String str1 = "";
int i = 0;

String sql = "SELECT COUNT(*) FROM ARTICLE WHERE BIGCLASS='"+classid+"'";
try{
conn = new DBConnect(sql);
conn.executeQuery();

if(conn.next())
i = conn.getInt(1);
}catch(Exception exception){}

conn.close();
articletotal = i;

}

public void pagetotalcount(int c,int p ){
int k = 0;
if(c%p==0)
k = c%p;
else
k = c%p+1;
pagetotal = k;
}

public void getList(int id,int i,int j){ //j is currentpage id is classid; i is pagecount;
String str1 = "";
String str2 = "";
String sql = "";
int k = 20;
articletotalcount(id);
int atc = articletotal;
str1 = "ARTICLE.BIGCLASS='"+id+"' AND ARTICLE.BIGCLASS=BIGCLASS.ID";
if(i>0)
k = i;
pagetotalcount(atc,k);
int ptc = pagetotal;

if(j<0)
j = 1;
if(j>ptc)
j=ptc;
currentpage = j;

int jt = (j-1)*k;
str2 = "LIMIT "+jt+","+k;
sql = "SELECT ARTICLE.ID,ARTICLE.FIRSTTITLE,ARTICLE.SECONDTITLE,ARTICLE.KEY,ARTICLE.COMEFROM,ARTICLE.AUTHOR,ARTICLE.EDITOR,ARTICLE.BIGCLASS,ARTICLE.SPTOPIC,ARTICLE.CONTENT,ARTICLE.FDATETIME,ARTICLE.FIP,ARTICLE.SDATETIME,ARTICLE.SIP,ARTICLE.READTIMES,ARTICLE.TOP,BIGCLASS.ID,BIGCLASS.NAME FROM ARTICLE,BIGCLASS WHERE "+str1+" ORDER BY ARTICLE.FDATETIME DESC";
try{
conn = new DBConnect(sql);
conn.executeQuery();
Article article;
while(conn.next()){
article = new Article();
article.setId(conn.getInt(1));
article.setFirsttitle(conn.getString(2));
article.setFdatatime(conn.getDate(11));
article.setAuthor(conn.getString(6));
article.setContent(conn.getString(5));
article.setReadtimes(conn.getInt(15));


coll.add(article);

}
}catch(Exception e){

}
try{
conn.close();
}catch(Exception e){}
}}
始终不能够在show.jsp里显示结果 不知道何故?
show.jsp部分如下:
<jsp:useBean id="articlelist" class="com.new.article.GetArticleList"/>
<logic:iterate id="listarticle" name="articlelist" property="coll">
<tr>
<td><bean:write name="listarticle" property="firsttitle"/></td>
<td><bean:write name="listarticle" property="author"/></td>
<td><bean:write name="listarticle" property="fdatetime"/></td>
<td><bean:write name="listarticle" property="readtimes"/></td>
</tr>
</logic:iterate

解决方案 »

  1.   

    首先要纠正你的一点:
    action formbean里的属性要String再说你一直使用的是listform
    但是在传值的时候,你就突然来了个空的form
    哈哈,你仔细看看做程序有时候要想想啊
      

  2.   

    请问楼上的
     formbean里的属性要String 是什么意思?我传的是int型的数值啊
    但是在传值的时候,你就突然来了个空的form 指哪里?
      

  3.   

    晕,你自己的程序你自己都不熟悉呢?:)
    1.不是每个页面捆绑一个action formbean 吗?作为页面来说最好:
    private String ....
    这里都是字符串对象啊
    2.你问到form在哪?我指出来你看看:
    既然你把值都放到form中,那你
    return actionmapping.findForward("ArticleList");的这个路径是怎么写的呢?struts-config.xml中找找
    其实你注释掉的这段有用的:
    /*request.setAttribute("coll",getarticlelist.getColl());
    request.setAttribute("Articletotal",String.valueOf(getarticlelist.getArticletotal()));
    request.setAttribute("pagetotal",String.valueOf(getarticlelist.getPagetotal()));
    request.setAttribute("currentpage",String.valueOf(getarticlelist.getCurrentpage()));
    request.setAttribute("listform",form);*/只是要把form换成:listform