@RequestMapping("list.html")
public String list(Model model, HttpServletRequest request) {
String sqlId = "menu.mysql.selectMenu";
// list = MybatisUtils.selectList(sqlId, SpringUtils.getParameter(request));
Page<Object> list = (Page<Object>) MybatisUtils.selectListByPage(sqlId, SpringUtils.getParameter(request));
// model.addAttribute("list", new PageInfo(list));
model.addAttribute("pageNum", list.getPageNum());
model.addAttribute("pages", list.getPages());
model.addAttribute("list", list);
return "menu/list";
}
@SuppressWarnings("unchecked")
public static <E> List<E> selectListByPage(String sqlId,Object parameter){
Map<String, Object> map = (Map<String, Object>) parameter;
String page = (String) map.get("page");
int pageNum = 1;
if(page != null && page.trim().length() != 0){
pageNum = Integer.parseInt(page);
}
PageHelper.startPage(pageNum, Constant.pageSize, true);
List<Object> result = getSqlSession(sqlId).selectList(sqlId, parameter);
return dealMapResult(result);
}
list.jsp
<c:forEach items="${list}" var="item">
<tr id='<c:out value="${item.menuId}"/>' align="left">
<td><c:out value="${item.parentId}"/></td>
<td><c:out value="${item.menuId}"/></td>
<td><c:out value="${item.menuName}"/></td>
<td><c:out value="${item.url}"/></td>
<td><c:out value="${item.title}"/></td>
<td><c:out value="${item.leaf}"/></td>
<td><c:out value="${item.orderSeq}"/></td>
<td οnclick='goEdit(<c:out value="${item.menuId}"/>)'>编辑</td>
<td οnclick='doDelete(<c:out value="${item.menuId}"/>)'>删除</td>
</tr>
</c:forEach>
<tfoot>
<tr>
<td colspan="9" align="center" class="p">
<c:if test="${pageNum != 1}">
<a href="list.html?query=a&page=${pageNum - 1}">上一页</a>
</c:if>
<c:if test="${pages != 1}">
<c:forEach var="pageIndex" begin="1" end="${pages}">
<c:choose>
<c:when test="${pageNum == pageIndex}">
<a>${pageIndex}</a>
</c:when>
<c:otherwise>
<a href="list.html?query=a&page=${pageIndex}">${pageIndex}</a>
</c:otherwise>
</c:choose>
</c:forEach>
</c:if>
<c:if test="${pageNum != pages}">
<a href="list.html?query=a&page=${pageNum+1}">下一页</a>
</c:if>
</td>
</tr>
</tfoot>
mybatis-config.xml
<plugins>
<!-- packageName为PageHelper类所在包名 -->
<plugin interceptor="org.me.common.util.PageHelper">
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
统一返回值为
Page<E>
(可以直接按
List
使用),方便在页面使用EL表达式,如
${page.pageNum}
,
${page.total}
对这种方式使用,一种是如果直接用Page包装list,还要单独get出来,再设置回去model.addAttribute("pageNum", list.getPageNum());
第二种是使用PageInfo对list再包装一次,页面就可以直接使用model.addAttribute("list", new PageInfo(list));
Mybatis_PageHelper