2.IndexController.java
/**
* IndexController
*/
public class IndexController extends Controller {
public void index() {
render("index.jsp");
}
}
注意:jfianl在经过1.InitConfig.java中的me.add("/", IndexController.class, "/index");路由后,你在地址栏输入
http://localhost:8080/ymeng/
就会访问到IndexController 的index方法(这是jfianl的一种默认写法)中,当然,这与IndexController.class, "/index")中的第三个参数是无关的,第三个参数指定的是前端的路径,
然后index()方法指定你访问到的页面内容是index.jsp。
3.MembersController.java
public class MembersController extends Controller {
public void index() {
setAttr("memPage", Members.me.paginate(getParaToInt(0, 1), 10));
render("memlist.jsp");
}
}
注意:我们只需要知道,这个方法就是将数据库中的数据指定到memlist.jsp中的memPage属性中。
4.Members.java
public class Members extends Model<Members>{
private static final long serialVersionUID = 4460796361065191809L;
public static final Members me = new Members();// 创建模型
/**
* @param pageNumber 第几页
* @param pageSize 每页大小
* @return
*/
public Page<Members> paginate(int pageNumber, int pageSize) {
return paginate(pageNumber, pageSize, "select *", "from members order by realname");
}
}
注意:名如其意,paginate方法看起来就是来处理分页问题的。至于第三、第四、更多的参数则是sql语句拼接。
那么后端我们需要开发的内容就完结了,目录结构如下:
添加前端文件
1.constants.js
var common = {
ctx : "/ymeng"
};
把项目的根路径记录下来,在js中可能要用到,本例子中暂时没有用到。
2.taglib.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
导入常用的jstl,以及设置项目路径,这个很重要!!!!
3._paginate.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/common/jsp/taglib.jsp"%>
<c:if test="${urlParas == null}">
<c:set var="urlParas" value="" />
</c:if>
<c:if test="${(totalPage > 0) && (currentPage <= totalPage)}">
<c:set var="startPage" value="${currentPage - 4}" />
<c:if test="${startPage < 1}" >
<c:set var="startPage" value="1" />
</c:if>
<c:set var="endPage" value="${currentPage + 4}" />
<c:if test="${endPage > totalPage}" >
<c:set var="endPage" value="totalPage" />
</c:if>
<div class="pagination">
<c:if test="${currentPage <= 8}">
<c:set var="startPage" value="1" />
</c:if>
<c:if test="${(totalPage - currentPage) < 8}">
<c:set var="endPage" value="${totalPage}" />
</c:if>
<c:choose>
<c:when test="${currentPage == 1}">
<span class="disabled prev_page">上页</span>
</c:when>
<c:otherwise>
<a href="${ctx}${actionUrl}${currentPage - 1}${urlParas}" class="prev_page">上页</a>
</c:otherwise>
</c:choose>
<c:if test="${currentPage > 8}">
<a href="${ctx}${actionUrl}${1}${urlParas}">${1}</a>
<a href="${ctx}${actionUrl}${2}${urlParas}">${2}</a>
<span class="gap">…</span>
</c:if>
<c:forEach begin="${startPage}" end="${endPage}" var="i">
<c:choose>
<c:when test="${currentPage == i}">
<span class="current">${i}</span>
</c:when>
<c:otherwise>
<a href="${ctx}${actionUrl}${i}${urlParas}">${i}</a>
</c:otherwise>
</c:choose>
</c:forEach>
<c:if test="${(totalPage - currentPage) >= 8}">
<span class="gap">…</span>
<a href="${ctx}${actionUrl}${totalPage - 1}${urlParas}">${totalPage - 1}</a>
<a href="${ctx}${actionUrl}${totalPage}${urlParas}">${totalPage}</a>
</c:if>
<c:choose>
<c:when test="${currentPage == totalPage}">
<span class="disabled next_page">下页</span>
</c:when>
<c:otherwise>
<a href="${ctx}${actionUrl}${currentPage + 1}${urlParas}" class="next_page" rel="next">下页</a>
</c:otherwise>
</c:choose>
</div>
</c:if>
这里面我加入了“${ctx}”,否则会访问路径错误!