基于Struts2+Extjs3.0 實現簡單分頁

jopen 12年前發布 | 22K 次閱讀 Struts2 Web框架

S1,首先要在GridPanel中添加PagingToolbar,它跟GridPanel只是包含的關系。本質上它們都共用一個JsonStore,從而產生聯系

bbar: new Ext.PagingToolbar({
    pageSize: 2,
    store: check_list_store,
    displayInfo: true,
    beforePageText:"第 ",
    afterPageText:" 頁/共 {0} 頁",
    displayMsg: '顯示從{0}條數據到{1}條數據,共{2}條數據',
    emptyMsg: "沒有數據"
 })

S2,JsonStore一定要指定記錄的總數目

var check_list_store = new Ext.data.JsonStore({        
    url: '<%=basePath%>check/check_list!list',
    root: "rows",
    totalProperty: 'totalCount',
    idProperty: 'studentSubID',
    remoteSort: true,
    fields:["studentSubID",
                "studentNumber",
        "projectName",
        "taskName",
        "studentName",
        "submitFile",
        "submitFileName",
        {name:"submitDate"},
        "submitPass","submitScore","submitForUS"]
});

S3,用Firebug查看,你會發現Extjs會自動向服務器POST兩個參數,不錯這兩個參數就是表示顯示當前第start條開始,當前頁有limit條數據!所以我們只要在服務器端接收這兩個數據,并且返回相應的JSON數據就可以了!

private Map session;
public Map getSession() {
    return session;
}
public void setSession(Map session) {
    this.session = session;
}
//分頁
private String limit;
private String start;

public String getLimit() {
    return limit;
}
public void setLimit(String limit) {
    this.limit = limit;
}
public String getStart() {
    return start;
}

public void setStart(String start) {
    this.start = start;
}

private Map responseJson;
public Map getResponseJson() {
    return responseJson;
}
public void setResponseJson(Map responseJson) {
    this.responseJson = responseJson;
}

// SERVICE
public CheckPagingService checkPagingService;

public CheckPagingService getCheckPagingService() {
    return checkPagingService;
}
@Resource(name = "checkPagingService")
public void setCheckPagingService(CheckPagingService checkPagingService) {
    this.checkPagingService = checkPagingService;
}

// 返回JSON 用到的MAP LIST
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();

public String list() throws Exception {
    //通過教師  學生提交列表      
    String number = (String) getSession().get("number");
    int count =checkPagingService.getCountOfStudentSubByTeacher(number);
    List<studentsub>studentSubList=checkPagingService.getPagingStudentSubByTeacher(number
, getStart()==null?0:Integer.valueOf(getStart()), getLimit()==null?2:Integer.valueOf(getLimit()));
    if (studentSubList != null) {
        for (StudentSub ss : studentSubList) {
            Map<string, object=""> m = new HashMap<string, object="">();
            m.put("studentSubID", ss.getStudentSubID());
            m.put("studentNumber", ss.getStudent().getNumber());
            m.put("studentName", ss.getStudent().getStudentName());
            m.put("projectName", ss.getTask().getProject().getProjectName());
            m.put("taskName", ss.getTask().getTaskName());
            m.put("submitFileName", ss.getFileName());
            m.put("submitFile", ss.getFileSrc());
            m.put("submitDate", ss.getSubDate());
            // 是否審核 評分 ,被展示
            m.put("submitPass", ss.getIsPass());
            m.put("submitScore", String.valueOf(ss.getScore()));
            m.put("submitForUS", ss.getIsForUS());
            list.add(m);
        }
    }
    map.put("totalCount",count);
    map.put("rows", list);
    this.setResponseJson(map);
    return "list";
}

Service層

public List<StudentSub> getPagingStudentSubByTeacher(final String number,final int index, final int pageSize)throws Exception{
    return getStudentSubDAO().getPagingStudentSubByTeacher(number, index, pageSize);
}

DAO層

public List<StudentSub> getPagingStudentSubByTeacher(final String number,final int index, 
final int pageSize){
    List resultList=this.getHibernateTemplate().executeFind(new HibernateCallback() {

    public Object doInHibernate(Session s) throws HibernateException,SQLException {
                Query q=s.createQuery("from StudentSub ss where ss.task.project.teacher
.number="+number+"order by ss.isPass asc");
            q.setFirstResult(index);
            q.setMaxResults(pageSize);
            List list=q.list();
            return list;
        }
    });
    return resultList;
}
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!