首先编写后台函数,编写一个返回ArrayList链表的泛型函数,下面代码中<NewsModel>为模型类,具体因项目需求而异,先将查询数据库得到的数据集返回给ResultSet,然后通过其next()方法进行循环,并通过list的add方法将每个查询到的记录添加到链表,最后返回该链表。函数源码如下:
/**
* 获取top10条新闻放入list中
* @param typeid
* @return
* @throws Exception
*/
public ArrayList<NewsModel> getNews(int typeid) throws Exception {
ArrayList<NewsModel> list=new ArrayList<NewsModel>();
Connection connection=dbUtil.getCon();
String sql="SELECT * FROM news_content WHERE typeid=? ORDER BY(id) DESC LIMIT 10";
PreparedStatement pstmt=connection.prepareStatement(sql);
pstmt.setInt(1, typeid);
ResultSet rs=pstmt.executeQuery();
while (rs.next()) {
NewsModel newsModel=null;
newsModel=new NewsModel(rs.getInt("id"), rs.getString("title"), rs.getString("content"), rs.getDate("time"), rs.getInt("typeid"), rs.getInt("click"), rs.getString("username"));
list.add(newsModel);
}
rs.close();
dbUtil.closeCon(connection, pstmt);
return list;
}
在完成后端函数代码编写后,进行前端table输出。源码如下:通过for循环将返回给ArrayList的数据遍历并输出,在这里可以通过插入<a/>标签来实现点击不同数据记录获得不同记录详情功能。
<table class="table table-condensed table-hover">
<%
HandleNews pocNews=new HandleNews();
ArrayList<NewsModel> pocList=pocNews.getNews(10);
for(NewsModel nModel:pocList){
%>
<tr>
<th><a href="target.jsp?id=<%= nModel.getId()%>" target="_blank"><%= nModel.getTitle()%></a></th>
<td align="right"><%= nModel.getDatetime() %></td>
</tr>
<%} %>
</table>