- 浏览: 2290307 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (357)
- J2EE (49)
- JavaScript (40)
- Spring (19)
- Struts (5)
- CSS (8)
- Hibernate (16)
- Java (67)
- DWR (4)
- JSON (3)
- XFIRE (1)
- Tomcat (1)
- Ant (2)
- 设计模式 (2)
- 经典收藏 (2)
- JSP (10)
- Linux (0)
- WebLogic (11)
- myeclipse (13)
- Buffalo (4)
- 文件上传相关 (1)
- oracle (33)
- html (6)
- JSTL (3)
- SVN (2)
- GIT (1)
- 孙卫琴(Java网络编程精解) (1)
- DOM4J (2)
- Swing (1)
- AJAX (1)
- Eclipse (5)
- 日志组件 (3)
- PowerDesigner (1)
- Jquery (22)
- IT技术开发相关网址 (1)
- Nutz (1)
- 其它 (1)
- Velocity (3)
- WebService (1)
- MySql (2)
- Android (1)
- Maven (2)
- Quartz (11)
- Lucene (1)
- springsource (1)
- Junit (1)
- Activiti (0)
最新评论
-
yzlseu:
拼凑,没有营养
Activiti进阶—分配组任务 -
zhangsenhao:
非常赞!代码很清楚
SpringMVC3.0+MyIbatis3.0(分页示例) -
xiamw2000:
分页写得不对,应该是 : order by ${orderNa ...
SpringMVC3.0+MyIbatis3.0(分页示例) -
sheertewtw:
...
SpringMVC:上传与下载 -
kingtoon:
...
XSS之xssprotect
参考资料
1 ibatis2.x与mybatis(ibatis3.x)的比较
http://zhaohe162.blog.163.com/blog/static/382167972011111114742371/
2 MyBatis学习 之 三、动态SQL语句
http://limingnihao.iteye.com/blog/782190
主要使用Oracle的三层sql实现分页!
一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5
二 工程相关图片:
1 DEMO图片
2 工程代码图片
3 相关jar包图片
三 此示例是在:
SSI:SpringMVC3+Mybatis3(登录及CRUD操作)基础上加的分页功能:
http://liuzidong.iteye.com/blog/1051760
四 主要代码文件
1 BaseController.java用于子类调用方便
2 UserController.java
3 UserMapper.java
4 UserMapper.xml
5 userList.jsp
6 page.jsp,此页面你不用关心,只管引用就行了
1 ibatis2.x与mybatis(ibatis3.x)的比较
http://zhaohe162.blog.163.com/blog/static/382167972011111114742371/
2 MyBatis学习 之 三、动态SQL语句
http://limingnihao.iteye.com/blog/782190
主要使用Oracle的三层sql实现分页!
一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5
二 工程相关图片:
1 DEMO图片
2 工程代码图片
3 相关jar包图片
三 此示例是在:
SSI:SpringMVC3+Mybatis3(登录及CRUD操作)基础上加的分页功能:
http://liuzidong.iteye.com/blog/1051760
四 主要代码文件
1 BaseController.java用于子类调用方便
package com.liuzd.ssm.web; import javax.servlet.http.HttpServletRequest; import com.liuzd.page.Page; import com.liuzd.page.PageState; import com.liuzd.page.PageUtil; /** *Title: *Description: *Copyright: Copyright (c) 2011 *Company:http://liuzidong.iteye.com/ *Makedate:2011-5-23 下午03:31:03 * @author liuzidong * @version 1.0 * @since 1.0 * */ public class BaseController { /** * oracel的三层分页语句 * 子类在展现数据前,进行分页计算! * @param totalCount 根据查询SQL获取的总条数 * @param columnNameDescOrAsc 列名+排序方式 : ID DESC or ASC */ protected Page executePage(HttpServletRequest request,Long totalCount){ if(null == totalCount){ totalCount = 0L; } /**页面状态,这个状态是分页自带的,与业务无关*/ String pageAction = request.getParameter("pageAction"); String value = request.getParameter("pageKey"); /**获取下标判断分页状态*/ int index = PageState.getOrdinal(pageAction); Page page = null; /** * index < 1 只有二种状态 * 1 当首次调用时,分页状态类中没有值为 NULL 返回 -1 * 2 当页面设置每页显示多少条: index=0,当每页显示多少条时,分页类要重新计算 * */ Page sessionPage = getPage(request); if(index < 1){ page = PageUtil.inintPage(totalCount,index,value,sessionPage); }else{ page = PageUtil.execPage(index,value,sessionPage); } setSession(request,page); return page; } private Page getPage(HttpServletRequest request) { Page page = (Page)request.getSession().getAttribute(PageUtil.SESSION_PAGE_KEY); if(page == null){ page = new Page(); } return page; } private void setSession(HttpServletRequest request,Page page) { request.getSession().setAttribute(PageUtil.SESSION_PAGE_KEY,page); } }
2 UserController.java
package com.liuzd.ssm.web; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; import com.liuzd.page.Page; import com.liuzd.ssm.entity.User; import com.liuzd.ssm.service.UserService; @Controller @RequestMapping("/user") @SessionAttributes("userList") public class UserController extends BaseController{ private UserService userService; public UserService getUserService() { return userService; } @Resource public void setUserService(UserService userService) { this.userService = userService; } @RequestMapping("/userList") public ModelAndView userList(HttpServletRequest request){ Map<String,Object> params = new HashMap<String,Object>(); //添加查询条件 // ... params.put("name","jack");... //获取总条数 Long totalCount = this.getUserService().pageCounts(params); //设置分页对象 Page page = executePage(request,totalCount); //如排序 if(page.isSort()){ params.put("orderName",page.getSortName()); params.put("descAsc",page.getSortState()); }else{ //没有进行排序,默认排序方式 params.put("orderName","age"); params.put("descAsc","asc"); } //压入查询参数:开始条数与结束条灵敏 params.put("startIndex", page.getBeginIndex()); params.put("endIndex", page.getEndinIndex()); ModelAndView mv = new ModelAndView(); //查询集合 List<User> users = this.getUserService().pageList(params); mv.addObject("userList",users); mv.setViewName("userList"); return mv; } }
3 UserMapper.java
package com.liuzd.ssm.mapper; import java.util.List; import java.util.Map; import org.apache.ibatis.session.RowBounds; import com.liuzd.ssm.entity.User; public interface UserMapper{ // ..... public List<User> pageList(Map<String,Object> params); //分页总条数 public Long pageCounts(Map<String,Object> p); }
4 UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.liuzd.ssm.mapper.UserMapper"> <resultMap type="com.liuzd.ssm.entity.User" id="userMap"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="sex" column="sex"/> <result property="address" column="address"/> <result property="password" column="password"/> </resultMap> <select id="pageList" parameterType="map" resultType="list" resultMap="userMap"> select ttt.* from(select tt.*,rownum rn from(select * from users <where> <if test="name != null and name != ''"> <!-- 特别提醒一下, $只是字符串拼接, 所以要特别小心sql注入问题。 在开发时使用: $,方便调试sql,发布时使用: # and name like #{name}, --> and name like '%${name}%' </if> <if test="sex != null and sex != ''"> and sex = #{sex} </if> </where> order by ${orderName} ${descAsc} )tt)ttt <where> <if test="startIndex != null and startIndex != ''"> rn > ${startIndex} </if> <if test="endIndex != null and endIndex != ''"> <![CDATA[ and rn <= ${endIndex} ]]> </if> </where> </select> <select id="pageCounts" parameterType="map" resultType="long"> select count(*) from users <where> <if test="name != null and name != ''"> and name like #{name} </if> <if test="sex != null and sex != ''"> and sex = #{sex} </if> </where> </select> </mapper>
5 userList.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="/WEB-INF/c.tld" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ include file="/common/meta.jsp"%> </head> <body> <table width="60%" border="1" cellpadding="0" align="center"> <thead> <tr> <th style="cursor: hand;" title="按姓名进行排序" onclick="sortPage('name')" valign="top"> 姓名<font color='red'>${page.sortName eq "name" ? page.sortInfo : page.defaultInfo}</font> </th> <th style="cursor: hand;" title="按年龄进行排序" onclick="sortPage('age')" valign="top"> 年龄<font color='red'>${page.sortName eq "age" ? page.sortInfo : page.defaultInfo}</font> </th> <th style="cursor: hand;" title="按性别进行排序" onclick="sortPage('sex')" valign="top"> 性别<font color='red'>${page.sortName eq "sex" ? page.sortInfo : page.defaultInfo}</font> </th> <th style="cursor: hand;" title="按地址进行排序" onclick="sortPage('address')" valign="top"> 地址<font color='red'>${page.sortName eq "address" ? page.sortInfo : page.defaultInfo}</font> </th> <th style="cursor: hand;" > 操作 </th> </tr> </thead> <tbody> <c:forEach items="${userList}" var="user"> <tr align="center"> <td> ${user.name} </td> <td> ${user.age} </td> <td> ${user.sex eq 1 ? "男" : user.sex eq 2 ? "女" : "未知"} </td> <td> ${user.address} </td> <td> <a href="${pageContext.request.contextPath}/user/toAddUser.do">添加</a> | <a href="${pageContext.request.contextPath}/user/getUser/${user.id}.do">编辑</a> | <a href="${pageContext.request.contextPath}/user/delUser/${user.id}.do">删除</a> </td> </tr> </c:forEach> <jsp:include page="/page/page.jsp"> <jsp:param name="url" value="user/userList.do" /> </jsp:include> </tbody> </table> <br> <a href="${pageContext.request.contextPath}/index.jsp">返回</a> </body> </html>
6 page.jsp,此页面你不用关心,只管引用就行了
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/WEB-INF/c.tld" prefix="c"%> <c:set var="page" value="${sessionScope.page}" /> <c:set var="path" value="${pageContext.request.contextPath}" /> <c:set var="url" value="${param.url}" /> <c:set var="urlParams" value="${param.urlParams}" /> <c:set var="pathurl" value="${path}/${url}" /> <tr> <td colspan="5"> 共${page.totalCount}条记录 共${page.totalPage}页 每页显示${page.everyPage}条 当前第${page.currentPage}页 <c:choose> <c:when test="${page.hasPrePage eq false}"> <<首页 <上页 </c:when> <c:otherwise> <a href="${pathurl}?&pageAction=first${urlParams}"><<首页 </a> <a href="${pathurl}?pageAction=previous${urlParams}" /><上一页</a> </c:otherwise> </c:choose> || <c:choose> <c:when test="${page.hasNextPage eq false}"> 下页> 尾页>> </c:when> <c:otherwise> <a href="${pathurl}?&pageAction=next${urlParams}">下一页> </a> <a href="${pathurl}?pageAction=last${urlParams}" />末页>></a> </c:otherwise> </c:choose> <SELECT name="indexChange" id="indexChange" onchange="getCurrentPage(this.value);"> <c:forEach var="index" begin="1" end="${page.totalPage}" step="1"> <option value="${index}" ${page.currentPage eq index ? "selected" : ""}> 第${index}页 </option> </c:forEach> </SELECT> 每页显示:<select name="everyPage" id="everyPage" onchange="setEveryPage(this.value);"> <c:forEach var="pageCount" begin="5" end="${page.totalCount}" step="5"> <option value="${pageCount}" ${page.everyPage eq pageCount ? "selected" : ""}> ${pageCount}条 </option> </c:forEach> </select> </td> </tr> <div style='display: none'> <a class=listlink id="indexPageHref" href='#'></a> </div> <script> function getCurrentPage(index){ var a = document.getElementById("indexPageHref"); a.href = '${pathurl}?pageAction=gopage&pageKey='+index+'${urlParams}'; a.setAttribute("onclick",''); a.click("return false"); } function setEveryPage(everyPage){ var a = document.getElementById("indexPageHref"); var currentPage = document.getElementById('indexChange').value; a.href = '${pathurl}?pageAction=setpage&pageKey='+everyPage+'${urlParams}'; a.setAttribute("onclick",''); a.click("return false"); } function sortPage(sortName){ var a = document.getElementById("indexPageHref"); a.href = '${pathurl}?pageAction=sort&pageKey='+sortName+'${urlParams}'; a.setAttribute("onclick",''); a.click("return false"); } </script>
评论
12 楼
zhangsenhao
2017-02-16
非常赞!
代码很清楚
代码很清楚
11 楼
xiamw2000
2016-12-26
分页写得不对,应该是 :
order by ${orderName} ${descAsc} )tt
<where>
<if test="startIndex != null and startIndex != ''">
rn > ${startIndex} )ttt
</if>
<if test="endIndex != null and endIndex != ''">
<![CDATA[ and rn <= ${endIndex} ]]>
</if>
</where>
order by ${orderName} ${descAsc} )tt
<where>
<if test="startIndex != null and startIndex != ''">
rn > ${startIndex} )ttt
</if>
<if test="endIndex != null and endIndex != ''">
<![CDATA[ and rn <= ${endIndex} ]]>
</if>
</where>
10 楼
flyflyfly123
2016-01-13
你好,为什么共37条记录,每页显示10条,点击末页还是10条数据,不是应该7条吗
9 楼
巴比奇
2015-11-29
8 楼
F_Clover
2013-09-24
page包下的类没有呢!楼主能贴出来吗?谢谢了
7 楼
liuzidong
2011-11-15
不好意思呀,最近天天加班呀,没时间!重点是你要找出问题所在并修复它
6 楼
angelxmm326
2011-11-14
朋友最近忙?没有回复了啊!
5 楼
angelxmm326
2011-11-10
不客气,不过你给的源码还是有问题,界面是这样的,不能截图,我把界面的元素贴上来吧:
姓名 年龄 性别 地址 操作
bbb 23 男 北京大学 添加 | 编辑 | 删除
ccc 23 男 北京大学 添加 | 编辑 | 删除
bbb 23 男 北京大学 添加 | 编辑 | 删除
ccc 23 男 北京大学 添加 | 编辑 | 删除
ddd 23 男 北京大学 添加 | 编辑 | 删除
eee 23 男 北京大学 添加 | 编辑 | 删除
fff 23 男 北京大学 添加 | 编辑 | 删除
bbb1 23 男 北京大学 添加 | 编辑 | 删除
ccc1 23 男 北京大学 添加 | 编辑 | 删除
bbb1 23 男 北京大学 添加 | 编辑 | 删除
ccc1 23 男 北京大学 添加 | 编辑 | 删除
ddd1 23 男 北京大学 添加 | 编辑 | 删除
eee1 23 男 北京大学 添加 | 编辑 | 删除
fff1 23 男 北京大学 添加 | 编辑 | 删除
共条记录 共页 每页显示条 当前第页 <<首页 <上一页 || 下一页> 末页>> 每页显示:
注意最下面没有效果,也就是说:共条记录 共页 每页显示条 当前第页 <<首页 <上一页 || 下一页> 末页>> 每页显示: 这些都没有出数,
如果点击下一页的话,后台报错信息为:
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.liuzd.page.Page.getHasNextPage(Page.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:37)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
at org.apache.jsp.page.page_jsp._jspx_meth_c_005fwhen_005f1(page_jsp.java:428)
at org.apache.jsp.page.page_jsp._jspx_meth_c_005fchoose_005f1(page_jsp.java:398)
at org.apache.jsp.page.page_jsp._jspService(page_jsp.java:113)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
at org.apache.jsp.WEB_002dINF.jsp.userList_jsp._jspService(userList_jsp.java:121)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
2011-11-10 9:33:07 org.apache.catalina.core.ApplicationDispatcher invoke
感觉还是您的page.java类有些错误,我会持续关注 。
姓名 年龄 性别 地址 操作
bbb 23 男 北京大学 添加 | 编辑 | 删除
ccc 23 男 北京大学 添加 | 编辑 | 删除
bbb 23 男 北京大学 添加 | 编辑 | 删除
ccc 23 男 北京大学 添加 | 编辑 | 删除
ddd 23 男 北京大学 添加 | 编辑 | 删除
eee 23 男 北京大学 添加 | 编辑 | 删除
fff 23 男 北京大学 添加 | 编辑 | 删除
bbb1 23 男 北京大学 添加 | 编辑 | 删除
ccc1 23 男 北京大学 添加 | 编辑 | 删除
bbb1 23 男 北京大学 添加 | 编辑 | 删除
ccc1 23 男 北京大学 添加 | 编辑 | 删除
ddd1 23 男 北京大学 添加 | 编辑 | 删除
eee1 23 男 北京大学 添加 | 编辑 | 删除
fff1 23 男 北京大学 添加 | 编辑 | 删除
共条记录 共页 每页显示条 当前第页 <<首页 <上一页 || 下一页> 末页>> 每页显示:
注意最下面没有效果,也就是说:共条记录 共页 每页显示条 当前第页 <<首页 <上一页 || 下一页> 末页>> 每页显示: 这些都没有出数,
如果点击下一页的话,后台报错信息为:
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.liuzd.page.Page.getHasNextPage(Page.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:37)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
at org.apache.jsp.page.page_jsp._jspx_meth_c_005fwhen_005f1(page_jsp.java:428)
at org.apache.jsp.page.page_jsp._jspx_meth_c_005fchoose_005f1(page_jsp.java:398)
at org.apache.jsp.page.page_jsp._jspService(page_jsp.java:113)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
at org.apache.jsp.WEB_002dINF.jsp.userList_jsp._jspService(userList_jsp.java:121)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
2011-11-10 9:33:07 org.apache.catalina.core.ApplicationDispatcher invoke
感觉还是您的page.java类有些错误,我会持续关注 。
4 楼
liuzidong
2011-11-07
谢谢您的关注
1 UserService.java如下
2 已上传了工程,没有.jar,太大了,你可参考其它工程,我作了.jar的上传。
3 已上传了simplePage.jar,工程中也在相关源代码,把它放入lib就可使用了
1 UserService.java如下
package com.liuzd.ssm.service; import java.util.List; import java.util.Map; import org.apache.ibatis.session.RowBounds; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.liuzd.ssm.entity.User; import com.liuzd.ssm.mapper.UserMapper; @Service("userService") public class UserService { @Autowired private UserMapper userMapper; public void addUser(User user) { this.userMapper.addUser(user); } public int checkUserExits(User user) { return this.userMapper.checkUserExits(user); } public void delUser(String userId) { this.userMapper.delUser(userId); } public User getUserByUid(String userId) { return (User)this.userMapper.getUserByUid(userId); } public List<User> getUserByUids(List<String> classList) { return this.userMapper.getUserByUids(classList); } public List<User> getUserList() { return (List<User>)this.userMapper.getUserList(); } public List<User> getUserListByQuery(Map map) { return (List<User>)this.userMapper.getUserListByQuery(map); } public List<User> getUserListByQueryUser(User user) { return (List<User>)this.userMapper.getUserListByQueryUser(user); } public void editUser(User user) { this.userMapper.editUser(user); } public Long getCounts(){ return this.userMapper.getCounts(); } public List<Object[]> getUserDynamicSql(Object [] objs,RowBounds rw){ return this.userMapper.getUserDynamicSql(objs, rw); } public List<User> pageList(Map<String,Object> params,RowBounds rw){ return this.userMapper.pageList(params, rw); } public List<User> pageList(Map<String,Object> params){ return this.userMapper.pageList(params); } public Long pageCounts(Map<String,Object> p){ return this.userMapper.pageCounts(p); } }
2 已上传了工程,没有.jar,太大了,你可参考其它工程,我作了.jar的上传。
3 已上传了simplePage.jar,工程中也在相关源代码,把它放入lib就可使用了
3 楼
angelxmm326
2011-11-07
1:您没有给出UserService 中的pageCounts方法和pageList方法的定义,虽然比较简单,但你也要说明;
2:还有您给的源代码下载不对吧,simplePage.jar只有class文件,ssi-lib.7z只有lib包,没源代码;
3:能留个IM联系方式吗,我的QQ是:158917225。
2:还有您给的源代码下载不对吧,simplePage.jar只有class文件,ssi-lib.7z只有lib包,没源代码;
3:能留个IM联系方式吗,我的QQ是:158917225。
2 楼
liuzidong
2011-11-04
什么地方呀,我测试是没问题,正常的,
1 楼
angelxmm326
2011-11-04
代码有些不对
发表评论
-
【转载】Eclipse Class Decompiler——Java反编译插件
2018-06-24 11:09 1360参见:jd-eclipse 的安装和使用(最新版的) h ... -
Java多线程序源码
2016-06-24 15:04 10391、《Java多线程编程核心技术》源代码(高洪岩) 2、Jav ... -
Spring & Junit
2016-05-27 13:18 7581 测试基类(BaseJunit4Test) import ... -
XSS之xssprotect
2012-12-07 23:03 29496参考资料 1 跨网站脚本 ... -
myeclispe之图解weblogic81配置
2011-11-07 10:11 1622一 创建Weblogic81域(如下图) 注意事项:一般 ... -
Cannot forward a response that is already committed
2011-09-07 09:43 5586参考资料 1 Cannot forward a respons ... -
WebLogic之Cannot parse POST parameters of request解决方法
2011-09-06 15:31 11347参考资料 1 关于Cannot parse POST para ... -
WebLogic之weblogic.xml.jaxp.RegistrySAXTransformerFactory
2011-08-16 16:46 8778参考资料 1 Thread: java.lang.ClassC ... -
Quartz之一个任务绑定多个触发器
2011-08-15 16:27 5025参见官方示例: SchedulerFactory sf = ... -
Quartz之QuartzInitializerListener
2011-08-15 15:12 7923问题:我想在WEB容器启动时就执行任务怎么办呢 Quartz: ... -
Quartz之QuartzInitializerServlet
2011-08-15 14:39 9266问题:我想在应用程序启动之后去执行任务怎么办呢! Quartz ... -
jQuery与Java实现图片的剪切
2011-08-05 15:10 30518一 参考资料 1 jquery Jcrop 头像,logo截图 ... -
WebLogic之Session
2011-07-25 13:15 24049参考资料 1 关于WebLogic的Session丢失的问题 ... -
Frameset导致Cookies和Session丢失的原因及解决办法
2011-07-25 12:28 4376参考资料 1 Frameset导致Cookies和Sessio ... -
java,javascript对18位身份证格式的验证算法
2011-07-12 14:15 7110参考资料 1 java实现的18位身份证格式验证算法 http ... -
Quartz之CronTrigger
2011-07-11 15:01 14724参考资料 1 quartz 学习笔记 http://china ... -
Quartz之CronExpression
2011-07-08 16:15 33778参考资料 1 Spring中任务调度(Quartz篇)-续-c ... -
Quartz之SimpleTrigger
2011-07-08 15:21 27245SimpleTrigger: 它只能用于指定任务在一个特定时间 ... -
Quartz2之入门示例
2011-07-07 17:12 79217环境:XP+Myeclipse6.5+JDK1.6 q ... -
Sprint之java.util.Time
2011-07-06 16:17 1691参考资料 1 在Spring中使用JDK Timer进行任务调 ...
相关推荐
本示例聚焦于如何在SpringMVC 3.0和MyBatis 3.0环境中实现分页功能,这在处理大量数据时尤其重要,能够提高用户体验并减轻服务器压力。 **SpringMVC 3.0** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-...
springMVC3.0 + MyBatis3.1 花了2天整合成功的DEMO Spring 用的是基于注解的 MyBatis 用的是基于XML的 带表结构 有增删改查的小例子(含事务) 个人认为这套小框架有有兴趣的人 完全可以自己修改修改, 作为自己以后...
本教程主要讲解如何使用MyEclipse8.6集成开发环境来搭建一个基于SpringMVC3.0和Hibernate3.3的Web应用环境,这对于初学者来说是非常实用的。下面我们将详细地分解每个步骤。 首先,我们从创建Web Project项目开始:...
在SpringMvc+MyIbatis的项目中,web.xml文件是整个Web应用的入口,是必须要配置的。在web.xml中,需要配置log4j监听器、Spring监听器和SpringMVC监听器等组件。log4j监听器用于初始化日志系统,Spring监听器用于加载...
在本项目中,我们主要探讨的是如何利用SpringMVC 3.0、Hibernate 3.0、jQuery和MySQL来构建一个完整的登录注册系统。这个系统不仅涵盖了后台的业务逻辑处理,还包括了前端的用户交互与数据验证。下面将分别详细介绍...
《SpringMVC 4.1 + EJB 3.0 + EasyUI 整合EAR项目:构建高效分布式系统的关键技术》 在当前的企业级应用开发中,为了实现高性能、高可扩展性和高可维护性的系统,开发者往往需要采用一系列先进的技术和框架进行整合...
Spring + SpringMVC + Myibatis + Druid 整合源码,修改log4j.properties中log4j.appender.A1.File=YOUR-LOG-PATH,log4j.appender.FILE.File=YOUR-LOG-FILE
Springboot Spring+SpringMVC+Mybatis+Thymeleaf3.0+Druid 有增删改查,有监控http://localhost:8080/druid/login.html 账号 root 密码 123
资源有用没用因人而异,希望对需要的人多少能有些帮助吧...
本项目“springmvc4.0+mybatis3.0+log4j整合.rar”是一个典型的Java Web项目示例,展示了如何将SpringMVC 4.0、MyBatis 3.0和Log4j有效地集成在一起,实现高效、可控的Web应用开发。通过对这些核心组件的理解和实践...
SpringMvc+Servlet3.0+tomcat 整合源码
总的来说,"springmvc4.2+mybatis3.0+jboss"这个项目组合提供了一种高效、可维护的Java Web开发方式,利用Spring MVC的MVC架构,MyBatis的数据持久层能力,以及JBoss的运行环境,共同构建出强大的企业级应用。
myeclipse 利用框架 spring+springmvc+springsecurity+myibatis+mysql 实现用户认证和人员增删改查的demo 1.用户认证库与人员管理库是同一个库,我这里为了方便配置文件区别为datasource和securitydatasource 2.这...
SpringMVC和MyBatis是两个非常流行的Java Web开发框架,它们在企业级应用中广泛使用。SpringMVC作为Spring框架的一部分,主要负责处理HTTP请求并返回响应,而MyBatis则是一个轻量级的持久层框架,专注于SQL映射和...
标题 "springMVC+springSecurity3.0+maven" 指的是一个集成项目,它结合了Spring MVC、Spring Security 3.0和Maven这三个关键的Java开发工具和技术。让我们逐一深入理解这些技术及其相互之间的关系。 首先,Spring ...
综上所述,"springMVC+myibatis的maven项目架构"是一个完整的Java Web解决方案,它利用SpringMVC处理Web请求,MyBatis负责数据访问,而Maven确保了项目的构建和依赖管理。此外,项目还提供了实用的Word和Excel工具类...
本项目是基于SpringMVC、MyBatis和EasyUI这三大框架实现的后台分页功能,旨在提供一个高效、易用的解决方案。下面将详细介绍这三个技术以及它们如何协同工作来实现前端页面的分页。 首先,SpringMVC是Spring框架的...