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

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.菜单树响应事件、我的...

    基于ExtJs和SSH的在线图书销售系统

    通过Ajax技术,ExtJs与后端SSH框架进行数据交互,实现实时的数据显示和更新,提升用户体验。 系统架构上,前端部分采用ExtJs创建用户界面,用户可以通过搜索、分类浏览等方式找到所需的图书,同时支持在线购买、...

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

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

    ssh+extjs项目代码

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

    EXTJS与SSH结合小项目

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

    java毕业设计,SSH+EXTJS项目

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

    SSH2 注解 ExtJs前台 返回Json 的一个增删改查demo

    在这个“SSH2注解ExtJs前台返回Json的一个增删改查demo”中,我们将探讨如何利用这些技术实现前后端交互,特别是通过Json格式进行数据交换。 首先,让我们了解SSH2中的每个组件: 1. **Spring**:作为基础架构层,...

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

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

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

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

    SSH客户关系管理系统

    包括采用UML实现系统模型,用Struts实现前台显示与后台业务的分离,用Hibernate实现数据库的对象化操作,用Spring实现托管和属性值的依赖注入,采用基于DWR的Ajax实现异步刷新,采用ExtJS富客户端技术丰富页面表现和使得...

    Note笔记系统(SSH)

    它利用成熟的SSH框架实现了高效的后端逻辑,借助Mysql数据库存储数据,采用ExtJs提供用户友好的前端交互,并且具备协同工作和实用工具等附加功能,满足了用户在个人和团队环境下的笔记管理和信息查询需求。

    三层架构Structs2+Spring+Hibernate前台Ext项目架构(eclipse工程)

    在本项目中,“三层架构Structs2+Spring+Hibernate前台Ext”是Java Web开发中的一种常见组合,用于构建基于浏览器-服务器(BS)模式的应用。 1. **Struts2**:Struts2是一个基于MVC(Model-View-Controller)设计...

    JavaSSH做的精品课程系统

    虽然ExtJS4自身已经包含了一些jQuery的功能,但可能在某些特定场景下,开发者选择使用jQuery1.7来处理一些特定的前端需求或兼容性问题。 综上所述,"JavaSSH做的精品课程系统"是一个综合运用了Java后端三大框架和...

    中小企业ERP管理系统销售管理子系统设计与实现.docx

    中小企业ERP管理系统销售管理子系统设计与实现是基于J2EE的SSH框架、ExtJS前台、Struts框架应用层、Hibernate框架对象关系映射、Spring框架管理容器的设计和实现。该系统旨在实现中小企业销售管理子系统的设计和实现...

    SSH2上传实现

    本文将详细介绍如何利用SSH2(Struts2 + Spring + Hibernate)框架结合ExtJS前端库实现文件上传功能。具体包括前端界面设计、JavaScript交互逻辑以及后端处理流程。 #### 二、前端实现 ##### 1. 前台页面设计 **...

    毕业论文jsp924酒店管理系统ssh.doc

    在系统实现阶段,本文档通过详细介绍SSH框架的具体实现方式,展示了如何将系统需求转化为实际的代码实现。同时,通过系统截图展示了系统的操作界面,直观地展示了系统的功能和操作流程。系统测试阶段,本文档进行了...

    java工作总结

    - 在SSH(Struts + Spring + Hibernate)架构中,Action层实例化接口并调用方法,DAO层进行数据库操作。 2. **接口安全性** - 确保敏感信息加密传输。 - 验证用户权限。 ### 五、同步与异步 1. **同步** - ...

    基于Java EE的校企联合实训管理系统实现技术研究.pdf

    除了SSH框架之外,系统还使用了ExtJS框架来实现前台页面。ExtJS是一个用于创建富客户端Web应用程序的框架,提供了一整套丰富的界面组件,例如数据表格、树形控件、菜单等。它能够创建与桌面应用程序相媲美的交互界面...

Global site tag (gtag.js) - Google Analytics