struts2 + hibernate 分页显示

action 类方法
public String view() {
simple = new SimpleCRUDImpl();
PageNavigateCalculator pnc = new PageNavigateCalculator();
pnc.setTotalRowsAmount(simple.doCountTransaction());
System.out.println(pnc.getTotalRowsAmount());
pnc.setCurrentPage(page);
totalpage = pnc.getTotalPages();
pre = pnc.HasPrevious();
next = pnc.HasNext();
nan = simple.doSelectAllStatus((page - 1) * pnc.getPageSize(), pnc.getPageSize());
return SUCCESS;
}

分页控制方法
public class PageNavigateCalculator {
public int getPageSize() {
return pageSize != 0 ? pageSize : 2;
}

public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}

public PageNavigateCalculator() {
currentPage = 1;
}

public int getCurrentPage() {
if (getTotalPages() > 0)
return currentPage;
else
return 0;
}

public boolean HasNext() {
boolean b;
if (getCurrentPage() * getPageSize() < getTotalRowsAmount())
b = true;
else
b = false;
return b;
}

public boolean HasPrevious() {
boolean b;
if (getCurrentPage() - 1 > 0)
b = true;
else
b = false;
return b;
}

public int getTotalRowsAmount() {
return totalRowsAmount;
}

public void setCurrentPage(int i) {
currentPage = i;
}

public void setTotalRowsAmount(int i) {
totalRowsAmount = i;
}

public int getTotalPages() {
return (getTotalRowsAmount() - 1) / getPageSize() + 1;
}

public int getNextPage() {
int i;
if (HasNext())
i = getCurrentPage() * getPageSize();
else
i = 0;
return i;
}

public int getPreviousPage() {
int i;
if (HasPrevious())
i = (getCurrentPage() - 2) * getPageSize();
else
i = 0;
return i;
}

public int getCurrentPageRows() {
return (getCurrentPage() - 1) * getPageSize();
}

private int totalRowsAmount;

private int currentPage;
private int pageSize;
}
jsp页面分页控制主要代码
<table>
<tr>
<th>
Id
</th>
<th>
Log
</th>
<th>
Statu
</th>
</tr>
<s:iterator value="nan">
<tr>
<td>
<s:property value="id" />
</td>
<td>
<s:property value="log" />
</td>
<td>
<s:property value="statu" />
</td>
</tr>
</s:iterator>
</table>
<s:url id="url_pre" value="viewlog.action">
<s:param name="page" value="page-1"></s:param>
</s:url>
<s:url id="url_next" value="viewlog.action">
<s:param name="page" value="page+1"></s:param>
</s:url>
<s:if test="pre">
<s:a href="%{url_pre}">pre</s:a>
</s:if>
<s:else>
pre
    </s:else>
<s:property value="page" />
<s:if test="next">
<s:a href="%{url_next}">next</s:a>
</s:if>
<s:else>
next
    </s:else>
totalpage:
<s:property value="totalpage" />

你可能感兴趣的:(Hibernate,jsp)