`

Extjs 分页显示(SSH + json)

阅读更多
Extjs 分页显示(SSH + json)



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.显示层:
 <%@ 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>


  • 大小: 21.8 KB
分享到:
评论

相关推荐

    SSH+ExtJs分页小例子

    在这个"SSH+ExtJs分页小例子"中,我们将探讨如何将这两种技术结合实现数据分页显示。 首先,我们来看NewsDAO.java文件。这个文件包含了两个关键方法:`findPageAll`和`totalRecord`。`findPageAll`方法实现了分页...

    extjs+ssh+java项目

    EXTJS+SSH+Java项目是将前端富客户端技术EXTJS与后端Spring、Struts2、Hibernate(SSH)三大框架相结合的应用实践。这种组合在企业级应用开发中常见,能够提供高效、美观且功能丰富的用户界面,同时具备强大的数据...

    extjs4.0+ssh系统框架

    - 分页和过滤:EXTJS4.0的Grid组件可以轻松实现数据分页和过滤,后端则需要提供对应的支持。 - 动态加载:使用EXTJS4.0的TreePanel可以动态加载树形结构数据,SSH后端需提供递归查询接口。 - 权限控制:通过Spring ...

    ssh+extjs4.0grid增删改查

    在"ssh+extjs4.0grid增删改查"这个主题中,我们将深入探讨如何将SSH框架与Ext JS 4.0 Grid集成,实现数据的CRUD(Create, Read, Update, Delete)功能。 1. **Struts2整合Hibernate**: - 配置Struts2-Hibernate...

    一个简单的extjs+ssh实例

    3. **结合实例**:分析提供的实例代码,理解SSH如何处理请求,返回JSON数据,以及ExtJS如何解析这些数据并渲染界面。 4. **动手实践**:尝试修改实例,添加新的功能或组件,以此加深对SSH和ExtJS的理解。 5. **...

    ssh框架+extjs4.0grid实例

    开发者可以通过此项目学习到如何使用Struts2 Action返回JSON数据,ExtJS Grid如何解析并显示这些数据,以及Spring如何管理整个应用的生命周期。这样的组合既提供了强大的后台处理能力,也具备优秀的用户体验,是现代...

    Extjs+ssh 增删改查

    ExtJS + SSH 构建Web应用的增删改查功能详解 在Web开发领域,ExtJS和SSH(Spring、Struts、Hibernate)是两种常见的技术框架。ExtJS是一款强大的JavaScript库,用于构建富客户端的用户界面,而SSH则是一个Java企业...

    extjs+ssh_项目源码

    1. JSON数据交互:EXTJS通常通过JSON格式与后台进行数据交换,SSH框架中的Action可以返回JSON数据,EXTJS的组件可以直接解析并展示。 2. RESTful API:EXTJS可以通过AJAX调用SSH提供的RESTful服务,实现前后端的无...

    ext+ssh代码和整合方案

    总结来说,"ext+ssh代码和整合方案"涉及到的是EXTJS前端框架与SSH后端框架的结合,通过JSON数据交换实现前后端交互,构建高效、易维护的Web应用。开发者需要理解EXTJS的组件体系和MVC模式,以及SSH中的Spring、...

    SSH框架+Ext技术做前台显示的客户关系管理系统T86.rar

    此外,SSH框架与Ext的集成通常通过Ajax技术实现,前端通过ExtJS发送异步请求,后端通过Spring MVC接收并处理这些请求,返回JSON格式的数据,再由ExtJS解析并更新界面。这种前后端分离的方式提高了系统的响应速度,也...

    ExtJs一张表分页与增删改查

    标题中的“ExtJs一张表分页与增删改查”是指使用Ext Js前端框架来实现一个数据表格的分页显示,以及对表格数据进行添加、删除、修改和查询操作的基础功能。这种功能在Web应用程序中非常常见,尤其在管理信息系统中,...

    Hibernate3.3.2+Spring2.5.5+Struts2.1.6+Extjs3.0.0

    - 需要额外添加`jsonplugin-0.34.jar`包,以支持Struts 2 Action返回JSON格式的数据。 2. **实体类设计** - 定义一个通用的实体接口`BaseEntity`,其中包含一个公共方法`getId()`来获取实体的主键ID。 ```java ...

    31总结1

    以上内容涵盖了jQuery EasyUI和ExtJS的组件、JSON对象、B/S架构中的Session机制、Ajax在不同浏览器的实现以及FTP与SFTP的区别。这些知识点在实际的Web开发中非常重要,理解和掌握它们能帮助开发者更高效地构建和维护...

    29这还是一个锦囊1

    - **Grid**:表格组件,支持数据分页、排序和过滤。 - **Form**:表单组件,可以方便地处理表单数据。 - **Tree**:树形结构组件,用于展示层次关系的数据。 - **Menu**:菜单组件,用于创建下拉菜单或导航菜单...

Global site tag (gtag.js) - Google Analytics