`
shaohan126448
  • 浏览: 112885 次
  • 来自: 北京
社区版块
存档分类
最新评论

ExtJs+SSH框架数据显示在前台的问题

 
阅读更多

我要进行一个分组统计的功能,查询一张数据库表,然后把它显示在前台。但数据库表里面是没有相应的这个字段的。我先贴代码吧。
xml代码:

Java code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<hibernate-mapping>
    <class name="cn.gzjp.base.cms.entity.ActivitySum" table="tb_sms_join">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native">
                <param name="sequence">activity_seq</param>
            </generator>
        </id>
        <property name="mdn" type="java.lang.String">
            <column name="mdn" length="30" />
        </property>
        <property name="activityId" type="java.lang.Integer">
            <column name="ACTIVITY_ID" length="30" />
        </property>       
        <property name="joinTime" type="timestamp">
            <column name="JOIN_TIME" length="20" />
        </property>     
    </class>
</hibernate-mapping>


持久化的代码:

Java code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ActivitySum {
   
    private Integer id;
   
    private Integer activityId;
   
    private String mdn;
   
    private Date joinTime;
 
    public ActivitySum() {
        super();
    }
 
    public ActivitySum(Integer id, Integer activityId, String mdn, Date joinTime) {
        super();
        this.id = id;
        this.activityId = activityId;
        this.mdn = mdn;
        this.joinTime = joinTime;
    }
...


我就是想进行对activityId分组统计,显示在前台是activityId这个字段和统计的数量。
我查数据库这层代码:

Java code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public PageList<ActivitySum> findByPage(ActivitySum entity, PageInfo pageInfo) {
    PageList<ActivitySum> pList = new PageList<ActivitySum>();
    List<ActivitySum> list=null;
    pList.setTotalCount(20);
    if (entity !=null ) {   
        if(entity.getMdn()!=null){
        }
       
        if(entity.getJoinTime()!=null){
        }
        if(entity.getMdn()==null&&entity.getJoinTime()==null){               
            Session session = getBindDao().getSessionFactory().getCurrentSession();
            String sql = "select activity_id activityId ,count(*) mdn from tb_sms_join group by activity_id";
            SQLQuery sqlQuery = session.createSQLQuery(sql);               
            list = sqlQuery.list();                   
        }
        pList.setList(list);
       
        return pList;
    } else {
       
         return pList;
    }
}


这个是开始加载页面时会调用到这个方法,就是在Action里面调用的。
action的代码如下:

Java code?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package cn.gzjp.base.cms.web.action.system;
 
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.beans.factory.annotation.Autowired;
 
import cn.gzjp.base.cms.entity.ActivitySum;
import cn.gzjp.base.cms.entity.SmsJoin;
import cn.gzjp.base.cms.service.ActivitySumService;
import cn.gzjp.base.cms.service.CommonService;
import cn.gzjp.base.cms.web.action.CmsJsonAction;
 
import com.opensymphony.xwork2.Action;
 
@Namespace("/system")
@Results({   
//    @Result(name=Action.SUCCESS, type = "json", params={
//            "excludeProperties","pageList\\.list\\[\\d+\\]\\.(cmsRights|cmsRoles)(1)*,pageList\\.list\\[\\d+\\]\\.cmsRight\\.(cmsRight|cmsRights|cmsRoles)(1)*",
//            "includeProperties","success,msg,pageList.*"}),//返回pageList到第三层属性
 
    //返回主页面
    @Result(name=CmsJsonAction.INDEX, type = "dispatcher", location="/system/activity-sum/index.jsp")
 
})
public class ActivitySumAction extends CmsJsonAction<ActivitySum,Integer> {
   
    @Autowired
    private ActivitySumService activitySumService;
 
    @Override
    public CommonService getCommonService() {
        return activitySumService;
    }
 
    @Override
    public Integer[] getIds() {
        return this.ids;    }
 
    @Override
    public ActivitySum getModel() {
        if(this.model==null){
        this.model = new ActivitySum();
    }
    return this.model;
    }
 
    @Override
    protected void prepareModel() throws Exception {       
        if(this.model!=null && this.model.getId()>0){                       
            this.model = this.activitySumService.getByPk(this.model.getId());           
        }
    }
   
    public void prepareSave() throws Exception{
    prepareModel();
    if(this.model!=null && this.model.getId()>0){                       
        this.model = this.activitySumService.getByPk(this.model.getId());           
    }
}
 
    @Override
    public void setIds(Integer[] ids) {
        this.ids = ids;
       
    }
 
    @Override
    public void setModel(ActivitySum model) {
        this.model = model;
       
    }
 
    @Override
    public String list() throws Exception {
       
        try {
            log.debug("list modol=" + getModel());
            this.pageList = this.getCommonService().findByPage(getModel(),
                    getPageInfo());
            log.debug("list size=" + this.pageList.getList().size());
            this.setSuccess(true);
            this.setMsg("成功");
            return SUCCESS;
        } catch (Exception e) {
            log.error("list error." + e.getMessage(), e);
            throw e;
        }
    }
   
   
}


CmsJsonAction代码如下

Java code?
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
@ParentPackage("json")
@Results({
        /**
         * 默认返回Result,如果对象有关联对象,请在子类中重写该Result
         */
        @Result(name = Action.SUCCESS, type = "json", params = {"includeProperties", "success,msg,list.*,pageList.*" }),
        @Result(name = Action.INPUT, type = "json", params = { "includeProperties","success,msg,model.*" }),
        @Result(name = CmsJsonAction.ERROR_INFO, type = "redirectAction",params={
                "actionName","result-code",
                "namespace","/system",
                "method","findError",
                "resultCode","${resultCode}"
        }),       
        @Result(name = CmsJsonAction.LIST, type = "json", params = { "includeProperties","success,msg,list.*" }),
        @Result(name = CmsJsonAction.INFO, type = "json", params = { "includeProperties","resultCode,success,msg" }) })
public abstract class CmsJsonAction<T,PK extends Serializable> extends ActionSupport implements
        Preparable {
    private static final long serialVersionUID = 1L;
 
    protected Log log = LogFactory.getLog(getClass());
    /**
     * 返回消息.如:{success:true,msg:"成功"}
     */
    public static final String INFO = "info";
    /**
     * 返回该action的主页面
     */
    public static final String INDEX = "index";
    /**
     * 根据resultCode查询错误消息并返回
     */
    public static final String ERROR_INFO = "errorInfo";
    /**
     * 查询全部
     */
    public static final String LIST = "list";
......


extjs前台界面如下

Java code?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Ext.onReady(function() {
    Ext.QuickTips.init();// 初始化提示组件
 
    // 查询工具条
    var searchToolbar = new Ext.Toolbar({
        items : ["用户号码",{                   
                    id : 'model.mdn',
                    maxLength : 15,
                    xtype : "textfield",                   
                    maskRe:/\d/,
                    regex:/^[0-9]{0,11}$/,
                    emptyText:'只能输入数字',
                    listeners:{
                        'specialKey':function(field,e){
                            onSearchFieldEnter(field,e);
                        }
                    }
                }, '-','日期','-',{
                    xtype : 'datefield',
                    id : 'model.joinTime',
                    format:"Y-m-d",                                   
                    listeners:{
                        'specialKey':function(field,e){
                            onSearchFieldEnter(field,e);
                        }
                    }
                },'-',{
                    xtype : 'button',
                    text : "查询",
                    iconCls : 'search',
                    listeners : {
                        "click" : function() {
                            grid.onRefresh();
                        }
                    }
                }]
    });
    // 列表部分
    var gridStructure = [{header:'id',
                name:"id",
                width:10,
                hidden:true,
                sortable:true},{
                header : '活动ID',
                name : "activityId",
                width:100},
             {
                header : '总数',
                name : "mdn",
                width:200
               
                //sortable : true
            }];
    /**
     * 在条件输入框上回事执行查询功能
     * @param {Ext.form.textfield} field
     * @param {EventObject} e
     */
    var onSearchFieldEnter = function(field,e){
        if (e.getKey() == Ext.EventObject.ENTER) {
            grid.onRefresh();
        }
    };
    var form = new Ext.ux.form.BasicTableForm({
                id : 'saveOrUpdateForm',
                layoutConfig : {
                    columns : 1
                    // 每一行的表单数
                },
                autoHeight : true,
                waitMsgTarget : true,
                reader : new Ext.data.JsonReader({
                            successProperty : 'success',
                            root : 'model',
                              idProperty : 'id'
                        }, [{
                                    name : 'model.id',
                                    mapping : 'id'
                                }, // custom mapping
                                {
                                    name:'model.activityId',
                                    mapping:'activityId'
                                },
                                {
                                    name:'model.mdn',                               
                                    mapping:'mdn'
                                }])
           
            });
 
 
           
    var grid = new Ext.ux.grid.CrudGrid({
                entityName : '显示页面',
                entityCode : 'model',
                region:'center',
                structure : gridStructure,
                url : ctx + '/system/activity-sum!list.action',
                defaultSortField : 'id',
                keyField : 'id',
                deleteUrl : ctx+ '/system/activity-sum!delete.action',
                saveOrUpdateUrl : ctx+ '/system/activity-sum!save.action',
                formLoadUrl : ctx+ '/system/activity-sum!input.action',
                // 设置高度为页面页面高度
                height : document.body.clientHeight,
                searchTbar : searchToolbar,
                saveOrUpdateForm : form,
                //saveOrUpdateWindowWidth : 350,
                //删除时,接收ids的参数名,不设置时默认为keyField+'s'
                //deleteKeyField:'ids'
                rowActionsShow:false,   //操作列显示
                dblclickUpdate:false//行双击事件
                showAddBtn:false//新增按钮
                showDeleteBtn:false//删除按钮
            });   
    this.grid = grid;   
   
    var viewport = new Ext.Viewport({
        layout: 'border',
        applyTo:Ext.getBody(),
        items:[grid]
    });   
});
分享到:
评论

相关推荐

    MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统

    01.教程简介_ExtJS4.2简介_SSH2基本框架搭建 02.编写几个通用的service方法、设计数据库 03.搭建ExtJS的MVC框架 04.主界面的搭建、登录功能和菜单树的生成 05.创建菜单树、前台保存用户信息 06.菜单树响应事件、我的...

    SSH+ExtJs实现表单的增删改查CRUD

    用SSH为框架,前台用Extjs,数据以json格式封装,数据库采用mysql。有布局,有树形结构,有可编辑表单异步刷新,支持模糊查询。

    ssh+extjs项目代码

    最近自己动手做了一个后台使用struts2+Hibernate+Spring 前台使用extjs的工程当作练习。...后续可以通过日期或者内容进行查询和修改。 主要的练习点在 1 SSH框架的搭建和使用; 2 extjs组件化创建。

    EXTJS与SSH结合小项目

    本项目前台采用EXTJS设计,后台用SSH框架,数据库为MYSQL,适合初学EXTJS者参考,希望能帮助到大家。。。

    java毕业设计,SSH+EXTJS项目

    SSH框架+Ext技术做前台显示的客户关系管理系统 营销管理:客户开发计划、销售机会管理 二、客户管理:客户信息管理、客户流失管理 三、服务管理:服务创建、服务分配、服务反馈、服务归档 四、统计报表:客户服务...

    &nbsp;基于SSH2框架与ExtJS技术的权限管理模块的设计与实现

    并且以进销存管理平台的权限管理系统为切入点对系统运用的ExtJS技术和SSH2框架进行分析,在系统分析设计中展示ExtJS多级动态树结构如何在权限管理系统中应用并实现Ajax技术的异步加载树节点功能,并因此提高权限管理...

    JavaSSH做的精品课程系统

    采用Java三大框架SSH+Extjs4+JQuery1.7,前台用Struts2标签,后台采用Extjs4

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    了解java框架技术,熟悉SSH框架搭建的全过程 目标三. 可以让学员迅速掌握JEasyUI的API及使用技巧 目标四. 可以让学员熟练使用JEasyUI快速构通富客户端的界面及与后台服务器交互的注意事项与技巧 目标五. 通过...

    Note笔记系统(SSH)

    MyNote笔记系统 框架:Struts2+Hibernate+Spring 数据库:Mysql 前台框架:主要是ExtJs,Jsp 实现功能:在线笔记管理,群组乐享,日常工具(日程管理和天气预报)

    在线考试系统源码

    十万行在线考试系统源码,供有缘人下载收藏,采用s2sh框架,前台extjs+mysql脚本,简单配置可运行

    javaweb进销存管理系统

    一个简单的进销存管理系统,web应用程序,采用ssh2框架架构,前台页面使用extjs技术,数据库采用MySQL,功能包含采购、库存、销售三个主要部分,支持条形码管理,兼容多种条码打印机,丰富的导入、导出功能,完善的...

    传智播客SCM手把手开发文档

    ExtJS extjs.com 比较全面的AJAX框架 树,菜单,表格编辑器(Grid)学习比较困难 --&gt;显示公告(页面内弹出窗口) 1. 导入CSS和EXT的JS 2. 写Ext.onRead 3. 写入功能代码 EasyValidation 表单验证框架

    JQUERY 学习案例

    前台jquery 后台采用SSH架构,简单实用的WEB开发框架

Global site tag (gtag.js) - Google Analytics