javaでlistのページを分けてページのインスタンスコードにデータを表示します。
条件によって検索するデータが多い場合があります。ページを分けてページに表示する必要があります。このとき次のページをクリックすると、毎回検索条件を持ってデータベース内で改ページするのは不便です。リスト内で改ページできます。
pageのモデルクラス:
以上は、Javaでlistのページを分けてページのインスタンスコードにデータを表示する内容についてです。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。
pageのモデルクラス:
public class Page {
private Integer currentPage;//
private int pageSize;//
private int totalPage;//
private List<?> dataList;//
private int star;//
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<?> getDataList() {
return dataList;
}
public void setDataList(List<?> dataList) {
this.dataList = dataList;
}
public int getStar() {
return star;
}
public void setStar(int star) {
this.star = star;
}
}
コントロール層:
@RequestMapping("fenye.do")
public String fen(Page page,HttpServletRequest request){
try {
// list
List<Data> showdata=loginService.selectyichall();
//
if (page.getCurrentPage() == null){
page.setCurrentPage(1);
} else {
page.setCurrentPage(page.getCurrentPage());
}
//
page.setPageSize(10);
//
page.setStar((page.getCurrentPage() - 1) * page.getPageSize());
//list
int count = showdata.size();
//
page.setTotalPage(count % 10 == 0 ? count / 10 : count / 10 + 1);
// list
page.setDataList(showdata.subList(page.getStar(),count-page.getStar()>page.getPageSize()?page.getStar()+page.getPageSize():count));
//
request.setAttribute("paging", page);
return "add/show.jsp";
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "mistake.jsp";
}
}
jspページ:
<script type="text/javascript" language="javascript">
function goPage(page){
location.href="fenye.do?currentPage=" rel="external nofollow" +page;
}
</script>
<div>
<table width="100%" border="0" align="center" cellspacing="1" >
<c:forEach items="${paging.dataList }" var="upl">
<tr>
<td align="center">${upl.name1 }</td>
<td align="center">${upl.name2 }</td>
<td align="center">${upl.name3 }</td>
</tr>
</c:forEach>
</table>
</div>
<div style="text-align:center; margin-top:10px;color: white;" id="venderfen">
<c:if test="${paging.totalPage > 0}">
${paging.currentPage } / ${paging.totalPage}
</c:if>
<c:if test="${paging.totalPage > 1}">
<c:choose>
<c:when test="${paging.currentPage==2 && paging.totalPage==2}">
<a onclick="goPage(1)"> </a>
<a onclick="goPage(${paging.currentPage-1})"> </a>
</c:when>
<c:when test="${paging.currentPage==1}">
<a onclick="goPage(${paging.currentPage+1})"> </a>
<a onclick="goPage(${paging.totalPage})"> </a>
</c:when>
<c:when test="${paging.currentPage==paging.totalPage}">
<a onclick="goPage(1)"> </a>
<a onclick="goPage(${paging.currentPage-1})"> </a>
</c:when>
<c:otherwise>
<a onclick="goPage(1)"> </a>
<a onclick="goPage(${paging.currentPage-1})"> </a>
<a onclick="goPage(${paging.currentPage+1})"> </a>
<a onclick="goPage(${paging.totalPage})"> </a>
</c:otherwise>
</c:choose>
</c:if>
${paging.total}
</div>
StringBuilder sb = new StringBuilder();
sb.append("SELECT distinct(m.time) ");
sb.append(" from tbl_monitor m left join tbl_variable v on m.variable = v.id ");
sb.append(" left join tbl_variable_group g on v.variable_group = g.id ");
sb.append(" where v.active = true and g.active=true ");
//sb.append(" AND m.variable in " + variableIds);
sb.append(" AND exists ( select vtemp.id from tbl_variable vtemp where vtemp.selected=true and vtemp.id=m.variable)");
sb.append(" AND m.time between " + beginTime + " AND " + endTime );
sb.append(" order by m.time asc");
Query query = em.createNativeQuery(sb.toString());
//
int total = query.getResultList().size();
tableView.setTotal(total);
tableView.setTotalPage(total % page.getPageSize() == 0 ? total / page.getPageSize() : (total / page.getPageSize()) + 1);
query.setFirstResult(from);
query.setMaxResults(offset);
timeList = query.getResultList();
締め括りをつける以上は、Javaでlistのページを分けてページのインスタンスコードにデータを表示する内容についてです。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。