extjs分页小例子

前台jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'ext.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

	<link rel="stylesheet" type="text/css" href="<%=basePath%>ext/resources/css/ext-all.css">
	<script type="text/javascript" src="<%=basePath%>ext/ext-base.js"></script>
	<script type="text/javascript" src="<%=basePath%>ext/ext-all.js"></script>
    <script type="text/javascript" src="<%=basePath%>ext/ext-lang-zh_CN.js"></script>
    <script type="text/javascript">
    Ext.onReady(function(){
        var store=new Ext.data.JsonStore({
	           url:"<%=basePath%>lpm/step2.action",
	           autoLoad:{params:{start:0,limit:10}},  //传递到后台的参数
	           fields:["userid","name"],
	           root:"data",                         //从后台取得的数据
	           totalProperty:"count"                //从后台取得的数据总量
        });

		var column=new Ext.grid.ColumnModel(
			[
			{header:"编号",dataIndex:"userid",sortable:true},
			{header:"姓名",dataIndex:"name",sortable:true}
			]
		);
		
		var grid = new Ext.grid.GridPanel({
			renderTo:"hello",
			title:"Hello world",
			height:300,
			width:470,
			cm:column,
			store:store,
			autoExpandColumn:0,
			loadMask:true,
			frame:true,
			autoScroll:true,
			bbar:new Ext.PagingToolbar({
				pageSize:10,   
				store:store, 
	            displayInfo: true,    
	            displayMsg: '显示 {0}-{1}条记录,共 {2} 条',    
	            emptyMsg: "没有记录"  
			
			}) 
	
        });

        
   })
    </script>
  </head>
  
  <body>
    <div id="hello"></div>
  </body>
</html>

 后台action代码:

package com.china.action;


import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@Namespace("/lpm")
public class Lpmcon extends ActionSupport{	
	@Action(value="step2"
			)
	public String getRes2(){
		HttpServletRequest request=ServletActionContext.getRequest();
		try{
			EntityManagerFactory ef=Persistence.createEntityManagerFactory("mysql");
		    EntityManager em=ef.createEntityManager();
		    Query qu=em.createQuery("from persion order by userid");
		    int count=qu.getResultList().size();
		   // List list=qu.getResultList();
		   
		    String start=request.getParameter("start");
		    String limit=request.getParameter("limit");
		    List list=qu.setFirstResult(Integer.parseInt(start))
			            .setMaxResults(Integer.parseInt(limit))
			            .getResultList();
		    
		    Map map=new HashMap();
		    map.put("data", list);
		    map.put("count",count);
		    JSONObject jalist=JSONObject.fromObject(map);
		    System.out.println(jalist.toString());
		    
		    HttpServletResponse hsr=ServletActionContext.getResponse();
		    PrintWriter pw=hsr.getWriter();
		    pw.print(jalist.toString());
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	
		
	}
}

 

你可能感兴趣的:(ExtJs)