PageHelper分页使用及测试

一、引入相关jar包


		
			com.github.pagehelper
			pagehelper
			5.0.0
		

二·、在SpringMVC配置文件中进行配置


		
			
					
		
	

注意:此配置要放在别名下面

三、编写Controller

@Autowired
	EmployeeService employeeService;
	
	/**
	 * 查询员工数据(分页查询)
	 * 
	 * @return
	 */
	@RequestMapping("/emps")
	public String getEmps(@RequestParam(value="pn",defaultValue="1") Integer pn,Model model) {
		//使用分页插件
		PageHelper.startPage(pn, 5);
		List emps = employeeService.getAll();
		//使用PageInfo包装查询后的结果,只需要将PageInfo交个页面就好了
		//可传入连续显示的页数
		PageInfo page = new PageInfo(emps,5);
		model.addAttribute("pageInfo", page);
		
		return "list";//由于视图解析器,会跳转到/WEB-INF/views/目录下
	}

四、编程Service

	@Autowired
	EmployeeMapper employeeMapper;

	/**
	 * 查询所有员工
	 * 
	 * @return
	 */
	public List getAll() {
		return employeeMapper.selectByExampleWithDept(null);
	}

五、测试

注意:Spring4测试的时候需要servlet3.0支持

1.需要引入Spring和SpringMVC的配置文件

2.PageInfo里面封装了很多信息

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations={"classpath:spring/applicationContext-*.xml","classpath:spring/dispatcherServlet.xml"})
public class MVCTest {
	//传入SpringMVC的ioc
	//@Autowired只能注入自己,要注入WebApplicationContext里面的东西
	//还需要一个注解@WebAppConfiguration
	@Autowired
	WebApplicationContext context;
	
	//虚拟mvc请求,获取处理结果
	MockMvc mockMvc ;
	
	@Before
	public void initMokcMvc() {
		mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
	}
	
	@Test
	public void testPageHelper() throws Exception {
		//模拟请求,拿到返回值
		MvcResult result =  mockMvc.perform(MockMvcRequestBuilders.get("/emps").param("pn","1")).andReturn();
	
		//请求成功后,请求域中会有pageInfo,我们可以取出pageInfo进行验证
		MockHttpServletRequest request = result.getRequest();
		PageInfo pi = (PageInfo) request.getAttribute("pageInfo");
		
		System.out.println("当前页码:"+pi.getPageNum());
		System.out.println("总页码:"+pi.getPages());
		System.out.println("总记录数:"+pi.getTotal());
		System.out.println("在页面需要连续显示的页码");
		int []nums = pi.getNavigatepageNums();
		for(int i : nums){
			System.err.println(" "+i);
		}
		
		//获取员工数据
		List list = pi.getList();
		for(Employee employee : list){
			System.out.println("ID:"+employee.getEmpId()+"name=>"+employee.getEmpName());
		}
	}
}

六、使用

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>




<%
	pageContext.setAttribute("APP_PATH", request.getContextPath());
%>




员工列表


	
	

SSM-CRUD

# empName gender email deptName 操作
${emp.empId } ${emp.empName } ${emp.gender=="M"?"男":"女" } ${emp.email } ${emp.department.deptName }
当前 ${pageInfo.pageNum }页,总${pageInfo.pages }页,总 ${pageInfo.total } 条记录

 

你可能感兴趣的:(java开发)