public
interface
MemberService {
//省略其他的代码
/** */
/**
* 分页查询
* @param currentPage 当前第几页
* @param pageSize 每页大小
* @return 封闭了分页信息(包括记录集list)的Bean
*/
public
PageBean queryForPage(
int
pageSize,
int
currentPage);
}
|
5、Service层实现类的部分内码如下:
public
class
MemberServiceImpl
implements
MemberService {
//通过applicationContext.xml配置文件注入MemberDao的值
private
MemberDao memberDao;
public
void
setMemberDao(MemberDao memberDao) {
this
.memberDao = memberDao;
}
/** */
/**
* 分页查询
* @param currentPage 当前第几页
* @param pageSize 每页大小
* @return 封闭了分页信息(包括记录集list)的Bean
*/
public
PageBean queryForPage(
int
pageSize,
int
page){
final
String hql =
"from Member"
;
//查询语句
int
allRow = memberDao.getAllRowCount(hql);
//总记录数
int
totalPage = PageBean.countTotalPage(pageSize, allRow);
//总页数
final
int
offset = PageBean.countOffset(pageSize, page);
//当前页开始记录
final
int
length = pageSize;
//每页记录数
final
int
currentPage = PageBean.countCurrentPage(page);
List<Member> list = memberDao.queryForPage(hql,offset, length);
//"一页"的记录
//把分页信息保存到Bean中
PageBean pageBean =
new
PageBean();
pageBean.setPageSize(pageSize);
pageBean.setCurrentPage(currentPage);
pageBean.setAllRow(allRow);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();
return
pageBean;
}
public
class
ListMember
extends
ActionSupport{
//通过applicationContext.xml配置文件注入memberService的值
private
MemberService memberService;
public
void
setMemberService(MemberService memberService) {
this
.memberService = memberService;
}
private
int
page;
//第几页
private
PageBean pageBean;
//包含分布信息的bean
public
int
getPage() {
return
page;
}
public
void
setPage(
int
page) {
//若URL中无此参数,会默认为第1页
this
.page = page;
}
public
PageBean getPageBean() {
return
pageBean;
}
public
void
setPageBean(PageBean pageBean) {
this
.pageBean = pageBean;
}
@Override
public
String execute()
throws
Exception {
//分页的pageBean,参数pageSize表示每页显示记录数,page为当前页
this
.pageBean = memberService.queryForPage(
2
, page);
return
SUCCESS;
}
}
<s:iterator value=
"pageBean.list"
>
<s:property value=
"title"
/>
<a href=
"getArticle.action?id=<s:property value="
id
"/>"
>modify</a>
<a href=
"deleteArticle.action?id=<s:property value="
id
"/>"
onclick=
"return askDel()"
/>delete</a><br/>
</s:iterator>
共<s:property value=
"pageBean.allRow"
/> 条记录
共<s:property value=
"pageBean.totalPage"
/> 页
当前第<s:property value=
"pageBean.currentPage"
/>页<br/>
<s:
if
test=
"%{pageBean.currentPage == 1}"
>
第一页 上一页
</s:
if
>
<s:
else
>
<a href=
"listMyArticle.action?page=1"
>第一页</a>
<a href=
"listMyArticle.action?page=<s:property value="
%{pageBean.currentPage-
1
}
"/>"
>上一页</a>
</s:
else
>
<s:
if
test=
"%{pageBean.currentPage != pageBean.totalPage}"
>
<a href=
"listMyArticle.action?page=<s:property value="
%{pageBean.currentPage+
1
}
"/>"
>下一页</a>
<a href=
"listMyArticle.action?page=<s:property value="
pageBean.totalPage
"/>"
>最后一页</a>
</s:
if
>
<s:
else
>
下一页 最后一页
</s:
else
>