ExtJS4.2学习(20)动态数据表格之前几章总结篇1

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

本节采用技术:SpringMVC+Jetty+ExtJs4.2+Maven+MySQL5.1以上+SLF4J(前几节学习的大家不知道记住了没,现在来总结复习下,顺便加点新技术)

学习本节前的准备:Eclipse高版本,Jetty插件,Maven插件,JDK1.7

休息了好久没开动教程了,确实最近太累了,大家见谅!先来看下效果,本章节是连续篇,今天是续篇的第一讲,前面都是静态讲解,大家是不是觉得不过瘾啊?咱学Java的嘛,当然得和Java的技术结合讲解咯,前面也说到以后会用动态数据讲解的。一、准备工作,创建MySQL数据库shuyangyang

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
Navicat MySQL Data Transfer
                                            
Source Server         : localhost
Source Server Version : 50133
Source Host           : localhost:3306
Source  Database        : shuyangyang
                                            
Target Server Type    : MYSQL
Target Server Version : 50133
File Encoding         : 65001
                                            
Date : 2014-02-18 23:04:49
*/
                                             
SET  FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `t_users`
-- ----------------------------
DROP  TABLE  IF EXISTS `t_users`;
CREATE  TABLE  `t_users` (
   `ID`  int (255)  NOT  NULL  AUTO_INCREMENT,
   ` Name varchar (255)  DEFAULT  NULL ,
   `age`  smallint (6)  DEFAULT  NULL ,
   `Address`  varchar (255)  DEFAULT  NULL ,
   `CardID`  varchar (255)  DEFAULT  NULL ,
   `Role`  varchar (255)  DEFAULT  NULL ,
   `DepartMent`  varchar (255)  DEFAULT  NULL ,
   `Sex`  varchar (255)  DEFAULT  NULL ,
   PRIMARY  KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=19  DEFAULT  CHARSET=utf8;
                                             
-- ----------------------------
-- Records of t_users
-- ----------------------------
INSERT  INTO  t_users  VALUES  ( '1' '张三' '20' '北京市海淀区' '342425199002131239' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '2' '李四' '22' '上海市长宁区' '342425199107203116' '管理员' '管理组' '女' );
INSERT  INTO  t_users  VALUES  ( '3' '王五' '24' '南京市' '3426198920314669' '客服人员' '客服组' '女' );
INSERT  INTO  t_users  VALUES  ( '4' '赵大头' '23' '南通市' '3424198805134567' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '5' '孙国' '21' '山东省' '3526199001234569' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '6' '测试' '26' 'test' '456489731312123' 'test' 'test' '男' );
INSERT  INTO  t_users  VALUES  ( '7' '张三1' '20' '北京市海淀区' '342425199002131239' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '8' '李四1' '22' '上海市长宁区' '342425199107203116' '管理员' '管理组' '女' );
INSERT  INTO  t_users  VALUES  ( '9' '王五1' '24' '南京市' '3426198920314669' '客服人员' '客服组' '女' );
INSERT  INTO  t_users  VALUES  ( '10' '赵大头1' '23' '南通市' '3424198805134567' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '11' '孙国1' '21' '山东省' '3526199001234569' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '12' '测试1' '26' 'test' '456489731312123' 'test' 'test' '男' );
INSERT  INTO  t_users  VALUES  ( '13' '张三2' '20' '北京市海淀区' '342425199002131239' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '14' '李四2' '22' '上海市长宁区' '342425199107203116' '管理员' '管理组' '女' );
INSERT  INTO  t_users  VALUES  ( '15' '王五2' '24' '南京市' '3426198920314669' '客服人员' '客服组' '女' );
INSERT  INTO  t_users  VALUES  ( '16' '赵大头2' '23' '南通市' '3424198805134567' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '17' '孙国2' '21' '山东省' '3526199001234569' '普通用户' '用户组' '男' );
INSERT  INTO  t_users  VALUES  ( '18' '测试2' '26' 'test' '456489731312123' 'test' 'test' '男' );

二、搭好框架,后面我会提供源代码给大家下载的

QQ截图20140218230857.jpg

三、最终效果,主要是框架中间的数据展示

QQ截图20140218230857.jpg 前台界面代码(这里给出的是数据展示层代码,全部代码可以在文章结尾处下载):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// 表格配置开始
var  columns = [
     {header: '编号' ,dataIndex: 'id' },
     {header: '名称' ,dataIndex: 'name' },
     {header: '年龄' ,dataIndex: 'age' },
     {header: '性别' ,dataIndex: 'sex' ,renderer: function (value){ 
         if (value== '男' ){ 
             return  "<span style='color:green;font-weight:bold';>男</span>"
         else 
             return  "<span style='color:red;font-weight:bold';>女</span>"
         }
,
     {header: '地址' ,dataIndex: 'address' },
     {header: '身份证号码' ,dataIndex: 'cardId' ,width:150},
     {header: '角色' ,dataIndex: 'role' },
     {header: '部门' ,dataIndex: 'departMent' }
];
                           
//转换原始数据为EXT可以显示的数据 
var  store =  new  Ext.data.Store({ 
     pageSize:13,  //每页显示几条数据 
     proxy:{ 
         type: 'ajax'
         url: '/user/showUser'
         reader:{ 
             type: 'json'
             totalProperty: 'total'
             root: 'data'
             idProperty: 'id' 
        
     }, 
     fields:[ 
        {name: 'id' },  //mapping:0 这样的可以指定列显示的位置,0代表第1列,可以随意设置列显示的位置 
        {name: 'name' }, 
        {name: 'age' }, 
        {name: 'sex' },
        {name: 'address' },
        {name: 'cardId' },
        {name: 'role' },
        {name: 'departMent' }
    
}); 
                           
var  grid =  new  Ext.grid.GridPanel({
     store: store,
     columns: columns,
     title:  '数据' ,
     region:  'center' //框架中显示位置,单独运行可去掉此段
     loadMask: true //显示遮罩和提示功能,即加载Loading…… 
     //forceFit:true //自动填满表格 
     bbar: new  Ext.PagingToolbar({ 
         store:store,  
         displayInfo: true //是否显示数据信息 
         displayMsg: '显示第 {0} 条到 {1} 条记录,一共  {2} 条' //只要当displayInfo为true时才有效,用来显示有数据时的提示信息,{0},{1},{2}会自动被替换成对应的数据 
         emptyMsg:  "没有记录"  //没有数据时显示信息 
     })
});
/加载数据 
store.load({params:{start:0,limit:13}});
// 表格配置结束

这里的url请求地址是/user/showUser,这里请求的是SpringMVC的地址,看下面的Controller代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package  com.shyy.web.controller.anntation;
                      
import  java.util.List;
                      
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;
                      
import  org.slf4j.Logger;
import  org.slf4j.LoggerFactory;
import  org.springframework.stereotype.Controller;
import  org.springframework.web.bind.annotation.RequestMapping;
import  org.springframework.web.bind.annotation.ResponseBody;
                      
import  com.shyy.web.controller.response.EmptyResponse;
import  com.shyy.web.controller.response.NormalResponse;
import  com.shyy.web.controller.response.Response;
import  com.shyy.web.entity.User;
import  com.shyy.web.service.UserService;
import  com.shyy.web.service.impl.UserServiceImpl;
                      
@Controller
@RequestMapping ( "/user/" )
public  class  UserController {
                      
     Logger logger = LoggerFactory.getLogger(UserController. class ); 
                          
     UserService userService =  new  UserServiceImpl();
                          
     /**
      * SpringMVC返回json数据
      * @return
      */
     @RequestMapping ( "showUser" )
     @ResponseBody
     public  Response resp(HttpServletRequest req, HttpServletResponse resp){
         String start = req.getParameter( "start" ); //起始页
         String limit = req.getParameter( "limit" ); //每页数量
         int  index = Integer.parseInt(start); 
         int  pageSize = Integer.parseInt(limit);
         List<User> list = userService.query(index,pageSize);  //获取所有用户数据
         long  total = list.size();
         if (total> 0 ){
             logger.debug( "now {}"  "返回用户数据。。。" );
             return  new  NormalResponse(list,userService.total());
         } else {
             logger.debug( "now {}"  "用户数据为空!" );
             return  new  EmptyResponse();
         }
                              
     }
}

最后的NormalResponse返回的是我封装的一个返回对象,如下代码所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package  com.shyy.web.controller.response;
               
               
public  class  NormalResponse  extends  Response {
               
     public  NormalResponse(Object data) {
         this .setCode(ResponseCode.OK);
         this .setMessage( "" );
         this .setData(data);
         this .setSuccess( true );
     }
                   
     public  NormalResponse(Object data, Long total) {
         this .setCode(ResponseCode.OK);
         this .setMessage( "" );
         this .setData(data);
         this .setSuccess( true );
         this .setTotal(total);
     }
               
     public  NormalResponse() {
         this .setCode(ResponseCode.OK);
         this .setMessage( "" );
         this .setData( null );
         this .setSuccess( true );
     }
}


本文转自shyy8712872 51CTO博客,原文链接:http://blog.51cto.com/shuyangyang/1408303,如需转载请自行联系原作者
相关文章
|
11月前
elementui实现表格单选功能
elementui实现表格单选功能
|
JSON JavaScript 前端开发
Extjs数据展现原理
Extjs数据展现原理
|
数据可视化 JavaScript 前端开发
ElementUI实现表格内嵌进度条功能
ElementUI实现表格内嵌进度条功能
573 1
|
数据管理 PHP 容器
layui框架实战案例(2):LayUI表格与Echarts图表交互展示及PHP后台数据管理(搜索、翻页、动态显示)
layui框架实战案例(2):LayUI表格与Echarts图表交互展示及PHP后台数据管理(搜索、翻页、动态显示)
652 0
vue3 使用element表格导出excel表格(带图片)
vue3 使用element表格导出excel表格(带图片)
600 0
vue3—使用element-plus表格导出excel表格(带图片)
今天制作后台管理系统,有一个二维码管理页面,要求把表格内的数据全部导出为Excel表格。 表格内有二维码图片,也要导出,制作的第一版是直接将图片的链接导出,但是要求导出能直接看的图片,所以就有了第二版。
|
JavaScript 前端开发 Java
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
jquery实现动态表格项目(表格增加删除/全选/表格变色特效) 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
420 0
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
|
前端开发
【网页前端】CSS样式表进阶文本样式
【网页前端】CSS样式表进阶文本样式
149 0
【网页前端】CSS样式表进阶文本样式