Extjs 分页显示(SSH + json)

[align=center][size=x-large][color=red][b]Extjs 分页显示(SSH + json)[/b][/color][/size][/align]


1.自定义json处理类:处理查询出来的teams 和 传进来的 pageInfo对象
(该类是模拟json的jar包)

package com.org.momo.util;

import java.util.List;

import com.org.momo.bean.PageInfo;
import com.org.momo.bean.Student;
import com.org.momo.bean.Team;

public class JsonUtil {
//teams开始
strBuffer.append("\"teams\":[");
//处理teams
for(int i=0;i<teams.size();i++)
{
Team team = teams.get(i);
//team开始
strBuffer.append("{");
//处理id
strBuffer.append("\"id\":");
strBuffer.append(team.getId());
strBuffer.append(",");
//处理name
strBuffer.append("\"name\":\"");
strBuffer.append(team.getName());
strBuffer.append("\",");
//处理leader
strBuffer.append("\"leader\":\"");
strBuffer.append(team.getLeader());
strBuffer.append("\",");
//处理slogan
strBuffer.append("\"slogan\":\"");
strBuffer.append(team.getSlogan());
strBuffer.append("\",");
//处理members
strBuffer.append("\"members\":\"") ;
if(team.getMembers()!=null){
int j=0 ;
for(Student stu:team.getMembers()){
j++ ;
strBuffer.append(stu.getName()) ;
if(j<team.getMembers().size()){
strBuffer.append(",") ;
}
}
}
strBuffer.append("\"") ;

//team结束
if(i<teams.size()-1)
{
strBuffer.append("},");
}
else
{
strBuffer.append("}");
}

}

//teams结束
strBuffer.append("]");


strBuffer.append("}") ;
jsonStr = strBuffer.toString() ;
return jsonStr ;
}
}



2.控制层处理类action:

package com.org.momo.action.team;

import java.io.PrintWriter;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.org.momo.bean.PageInfo;
import com.org.momo.bean.Team;
import com.org.momo.service.TeamService;
import com.org.momo.util.JsonUtil;
import com.org.momo.util.XmlUtil;

public class ViewTeamsEXTAction extends ActionSupport {
@Resource
private TeamService teamService;
private PageInfo pageInfo ;
private Integer start ;
private Integer limit ;

public PageInfo getPageInfo() {
return pageInfo;
}

public void setPageInfo(PageInfo pageInfo) {
this.pageInfo = pageInfo;
}

public String execute() {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/plain;charset=GBK");
try {
PrintWriter out = response.getWriter();

pageInfo = new PageInfo();
pageInfo.setCurrentPage(start/5 + 1) ; //设置当前页
pageInfo.setPageRows(5) ; //设置每页显示多少行
//获取所有小组
List<Team> teams = teamService.pageTeams(pageInfo) ;
out.println(JsonUtil.teamsToExtPage(teams, pageInfo)); //将document转换为String输出
out.flush() ;
out.close() ;
} catch (Exception e) {
e.printStackTrace() ;
}

return NONE;
}

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

public Integer getStart() {
return start;
}

public void setLimit(Integer limit) {
this.limit = limit;
}

public Integer getLimit() {
return limit;
}
}




3.struts.xml配置路径:

<action name="ViewTeamsEXT" class="com.org.momo.action.team.ViewTeamsEXTAction">
</action>



4.显示层:
[code]
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";
%>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>显示小组(Ajax)</title>

<link rel="stylesheet" type="text/css" href="css/team.css" />
<link rel="stylesheet" type="text/css" href="ext-2.0.2/resources/css/ext-all.css"/>

<script type="text/javascript" src="ext-2.0.2/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-2.0.2/ext-all.js"></script>
<script type="text/javascript" src="js/trim.js"></script>

<script type="text/javascript">
Ext.onReady(function(){
var store = new Ext.data.Store({ //Store开始
proxy:new Ext.data.HttpProxy({url:"team/ViewTeamsEXT",method:"post"}),
reader:new Ext.data.JsonReader(
{root:"teams",totalProperty:'totalProperty',id:"id"},
[{name:"id"},
{name:"name"},
{name:"leader"},
{name:"slogan"},
{name:"members"},
{name:"operation"}])
}) ; //Store结束

var column = new Ext.grid.ColumnModel([{header:'编号',dataIndex:'id'},
{header:'组名',dataIndex:'name'},
{header:'组长',dataIndex:'leader'},
{header:'口号',dataIndex:'slogan'},
{header:'组员',dataIndex:'members'},
{header:'操作',dataIndex:'operation'}]) ;
column.defaultSortable = true ;//默认可排序

var grid = new Ext.grid.GridPanel({
renderTo:"teamExt",
width:800,
autoHeight:true,
title:'小组管理',
store:store,
cm:column,
autoExpandColumn:4,
bbar:new Ext.PagingToolbar({pageSize:5,store:store,displayInfo:true,displayMsg:'第{0}条到第{1}条,一共{2}条',emptyMsg:'没有记录'})}) ;

store.load({params:{start:0,limit:5}});
}) ;
</script>
</head>
<body>
<div id="top">
<h1>显示小组</h1>
</div>
<div id="content">
<div id="teamExt"></div>
</div>
<p><div id="page"></div><br/>
<p><a href="team/index.jsp">返回小组管理</a>
</body>
</html>
[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值