迭代器输出数据库数据

留言板:


第一步:

从首页面通过action来显示数据库的信息到jsp页面,

<script>
location.href="Message/Message_list.action"
</script>
struts.xml

<package name="default" namespace="/Message" extends="struts-default">
   <action name="Message_*" class="action.MessageAction" method="{1}">
   <result name="toList" type="redirectAction">Message_list</result>
   <result name="list">/WEB-INF/jsp/message.jsp</result>
   <result name="input">/WEB-INF/jsp/error.jsp</result>
   </action>
   </package>

从这里进入到message.jsp:此页面用于显示留言数据,和留言功能的页面,list()方法在ACtion类中用于调用Dao层的方法来查询数据库的数据。

Dao层的查询方法和总数据方法:

public List<Message> search(int curPage,int pageSize) {
		if(curPage==0) curPage=1;
		Session session=SessionFactoryUtil.getSession();
		Query query=session.createQuery("from Message order by id desc");
		query.setFirstResult((curPage-1)*pageSize);
		query.setMaxResults(pageSize);
		return query.list();
	}


}
public Long TopicCounts() {
		Session session=SessionFactoryUtil.getSession();
		Query query=session.createQuery("select count(*) from Message ");
		
		return (Long) query.uniqueResult();
	}


action调用Dao层的方法来实现数据的接受:


public String list(){
		List<Message> list=dao.search(curPage,pageSize);
		totalPage=(int) Math.ceil((double)dao.TopicCounts()/(double)pageSize);//向上取整得到总页数
		session.setAttribute("list", list);//将list集合放入到session中去
		session.setAttribute("curPage", curPage==0?1:curPage);//最初进去是curPage=1;后面用get和set方法来吧curPage传进来
		session.setAttribute("totalPage", totalPage==0?1:totalPage);//总页数,同上面的pageSize一样
		return "list";
	}
jsp页面通过struts2的迭代器标签来完成输出list集合。

<s:iterator value="%{#session.list}" status="s" >//会将你设置的max和first显示出来,当curPage提交之后会再次出现新的页面数据
<tr align="center"><td >
//
<s:property value="%{#s.index-5+#session.curPage*@com.cl.util.ServletUtil@pageSize}"/> </td>
<td><a href="${pageContext.request.contextPath }/Answer/answer_message.action?id=<s:property value="id"/>" >
<s:property  value="title" /></a></td>
<td><s:property  value="ip" /></td>
<td><label > <s:property  value="message" /></label></td>
<td><s:date  name="date" format="yyyy-MM-dd hh:mm:ss" /></td>
 </tr></s:iterator>

div align="center">
		<a href="${pageContext.request.contextPath}/Message/Message_list.action?curPage=1" >首页</a>
		<a href="${pageContext.request.contextPath}/Message/Message_list.action?curPage=<s:property value="%{#session.curPage-1<0?1:#session.curPage-1}" />"   >上一页</a>
		第 <font color="red"><s:property value="%{#session.curPage}"/></font> 页/共<font color="red"><s:property value="%{#session.totalPage}"/></font>页
		<a href="${pageContext.request.contextPath}/Message/Message_list.action?curPage=<s:property value="%{#session.curPage+1>=#session.totalPage?#session.totalPage:#session.curPage+1}" />">下一页</a> 
		<a href="${pageContext.request.contextPath}/Message/Message_list.action?curPage=<s:property  value="%{#session.totalPage}"/>" >尾页</a>
	</div>
,这里才完整的分页。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值