`

struts2+spring+hibernate+json+jquery+flexigrid集成和在集成过程中需要注意的问题

阅读更多
现在比较主流的技术,在视图层所使用的表格控件,本来是打算使用功能比较强大的dhtmlxgrid的,但是在这个表格控件的样式不好定义,使用默认的样式和我想要的UI样式不协调,最后决定使用jquery的一个插件表格flexigrid,在集成和使用的过程中遇到了一些问题,实在让我郁闷得很,但最终还是一一解决了.在些做一个小结.有不对的地方希望各位大虾不要拍砖.

     对于struts2和spring+hibernate的集成没什么好说的网上有好多这方面的资料,在些就不讲解了.只讲一下如何使用json传输数据.

     在stuts2中使用json传输数据,需要使用到一个struts2的插件jsonplugin,在网上下载后,直接考到类路径下面就可以了,需要在struts2的配置sturts.xml文件里中里修改一下如下:

  1,  <package name="luanmadAjaxTree" extends="json-default" >//包要继承这个,因为jsonplugin自己带了一个配置文件struts-plugin.xml,里面继承了struts-default 包,文件如下:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="json-default" extends="struts-default">
        <result-types>
            <result-type name="json" class="com.googlecode.jsonplugin.JSONResult"/>
        </result-types>
        <interceptors>
            <interceptor name="json" class="com.googlecode.jsonplugin.JSONInterceptor"/>
        </interceptors>
    </package>
</struts>
2, 修改action的返回值类型,当使用这个插件以后,可以不返回任何视图,直接返回json数据.交由js处理

    <action name="demo" class="demo" method="list" >
   <result  type="json"></result>
  </action>

后台基本配置好了,下面就是对前台的一个整合

下载jquery和flexigrid包含到页面,注意顺序,先jquery.js在flexigrid.js.

表格初如化

   1,定义表格容器,对flexigrid是需要有个表格容器才能显示的;

<table id="flexigrid"></table>

   2,初始化

   <script>

$(document).ready(function(){
  $("#grid").flexigrid({
url: "demo.action",
dataType: 'json',
colModel : [{display: '编号', name : 'id', width : 20, sortable : true, align: 'center'},
{display: '姓名, name : 'name', width : 180, sortable : true, align: 'left'},
{display: '生日', name : 'bathday', width : 60, sortable : true, align: 'left'},
{display: '年龄, name : 'age', width : 60, sortable : true, align: 'left'}],
   sortname: "id",
    sortorder: "desc",
    usepager: true,
title: '表头名称',
useRp: false,
rp: 10,
showTableToggleBtn: true,
procmsg: '正在加载数据,请稍等...'

   </script>

还有许多参数,具体作用如下:

   1. height: 200, //flexigrid插件的高度,单位为px  
   2. width: ‘auto’, //宽度值,auto表示根据每列的宽度自动计算  
   3. striped: true, //是否显示斑纹效果,默认是奇偶交互的形式  
   4. novstripe: false,  
   5. minwidth: 30, //列的最小宽度  
   6. minheight: 80, //列的最小高度  
   7. resizable: true, //是否可伸缩  
   8. url: false, //ajax方式对应的url地址  
   9. method: ‘POST’, // 数据发送方式  
  10. dataType: ‘xml’, // 数据加载的类型  
  11. errormsg: ‘Connection Error’,//错误提升信息  
  12. usepager: false, //是否分页  
  13. nowrap: true, //是否不换行  
  14. page: 1, //默认当前页  
  15. total: 1, //总页面数  
  16. useRp: true, //是否可以动态设置每页显示的结果数  
  17. rp: 15, // 每页默认的结果数  
  18. rpOptions: [10,15,20,25,40],//可选择设定的每页结果数  
  19. title: false,//是否包含标题  
  20. pagestat: ‘Displaying {from} to {to} of {total} items’,//显示当前页和总页面的样式  
  21. procmsg: ‘Processing, please wait …’,//正在处理的提示信息  
  22. query: ”,//搜索查询的条件  
  23. qtype: ”,//搜索查询的类别  
  24. nomsg: ‘No items’,//无结果的提示信息  
  25. minColToggle: 1, //minimum allowed column to be hidden  
  26. showToggleBtn: true, //show or hide column toggle popup  
  27. hideOnSubmit: true,//隐藏提交  
  28. autoload: true,//自动加载  
  29. blockOpacity: 0.5,//透明度设置  
  30. onToggleCol: false,//当在行之间转换时  
  31. onChangeSort: false,//当改变排序时  
  32. onSuccess: false,//成功后执行  
  33. onSubmit: false // 调用自定义的计算函数  

下面就是最主要的一点,把返回的json格式的数据填到表格里

     后台业务代码我就不写了,这里主要讲一下返回的json格式,前几天就是因为返回的格式不对,表格里老是显示不出来数据,郁闷得很.

     flexigrid要求的返回格式,

{
"total":111, //数据总数
"page":4, //页码(第几页)

"rows":[
{"id":"1","cell":["a","b","c","e"]},
{"id":"2","cell":["a","b","c","e"]},
{"id":"3","cell":["a","b","c","e"]},
{"id":"4","cell":["a","b","c","e"]},
]}

格式一定要按照上面的来,要不然就是显示不出来,如果json格式是自己转换的话,但是不难,问题是,我们使用了插件,插件会自动帮我们转换,但是按照一般的来处理就会导致转换出来的格式不对,我在这里说一下.几种类型的转成json后的返回值:

map

{"map名":{}}转换时会自动在前面加上一个map后面才是值

{"map":{"id":2,"age":22,"name":"zhang","bathday":"2009-08-09"}}

list

{"list名":{}}同上

{"list":[{"age":12,"bathday":"2009-10-11","id":1,"name":"deng"},{"age":22,"bathday":"2009-08-09","id":2,"name":"zhang"}]}

javaBean

{"bean名":{}}同上

{"dean":{"age":12,"bathday":"2009-10-11","id":1,"name":"deng"}}

直接返变量

{"":"","":""}

{"age":22,"bathday":"2009-08-09","id":2,"name":"zhang"}

从上面几种返回格式,我们就可以去构造flexigrid所需要的数据格式了

{
"total":111, //数据总数
"page":4, //页码(第几页)

"rows":[
{"id":"1","cell":["a","b","c","e"]},
{"id":"2","cell":["a","b","c","e"]},
{"id":"3","cell":["a","b","c","e"]},
{"id":"4","cell":["a","b","c","e"]},
]}

里面有变量的返回类型,有list的返回类型,有map的返回类型

构造

private bean//这是你的bean类

private total;

private page;

private Map map=new HashMap()

private List rows=new ArrayList();//这里有一个List返回,所以名字起成rows

生成相应的get和set 方法

map.put("id","1");//对应"id":"1","

map.put("cell",new Object{bean.getA(),bean.getB()......})//对应cell":["a","b","c","e"]

rows.add(map);//对应"rows":[
{"id":"1","cell":["a","b","c","e"]},
{"id":"2","cell":["a","b","c","e"]},
{"id":"3","cell":["a","b","c","e"]},
{"id":"4","cell":["a","b","c","e"]},
]}

  total="100""total":111, //数据总数
  pate="2"//"page":4, //页码(第几页)

这样就可以构造出正确的数据格式
分享到:
评论
1 楼 向往前途 2014-02-27  
{
"total":8,
"page":1,
"rows":[
{"id":"1","cell":["1","402883ef444414a401444415ce1c0000","123"]},

{"id":"2","cell":["2","402883ef444414a40144441b31b40001","26"]},

{"id":"3","cell":["3","402883ef444414a40144441b86660002","26"]},

{"id":"4","cell":["4","402883ef44443eb50144443f73d60000","1"]},

{"id":"5","cell":["5","ff808081444060f701444062730a0000","12"]},

{"id":"6","cell":["6","ff8080814442f066014442f707130000","12"]},

{"id":"7","cell":["7","ff808081444301230144430142dc0000","12"]},

{"id":"8","cell":["8","ff8080814443045801444305948b0000","30"]}]
}
但是依然在前端没有显示出来的啊,不知道是怎么回事,不知道你有没有Flexigrid整合SSH的完整例子啊,发一份给我403826222@qq.com,怎么样啊

相关推荐

    struts2+spring3+hibernate3+jquery+flexigrid+mysql实例

    Struts2、Spring3、Hibernate3、jQuery、Flexigrid 和 MySQL 是一组常见的技术栈,用于构建企业级的Java Web应用程序。以下是对这些技术及其在实际应用中的详细说明: 1. **Struts2**:Struts2 是一个基于 MVC...

    Struts1+hibernate+spring+flexigrid+jsmodal 集成

    使用了框架是Struts1+hibernate+spring 集成了JQuery的FlexiGrid表格插件以及 jsmodal弹出框插件 一个增删改列表 数据库使用的是MYSQL 内有建表语句 数据库配置请自行配置本机数据库

    flexigrid+struts2+json+jquery实例

    在这个实例中,Flexigrid与Struts2、JSON和jQuery进行了集成,构建了一个功能丰富的Web应用。 Struts2是Apache软件基金会的一个开源MVC框架,用于构建Java Web应用程序。它提供了强大的动作调度、拦截器机制以及...

    jquery插件之flexigrid学习实例-jar包

    在"jquery插件之flexigrid学习实例-jar包"中,我们主要关注的是如何将Flexigrid集成到基于Struts2和JSON的Java应用中。以下是对这个主题的详细讲解: 首先,让我们了解Flexigrid。Flexigrid是一款轻量级的...

    jquery插件之flexigrid学习实例

    在这个"jquery插件之flexigrid学习实例"中,我们将深入探讨如何在Struts2框架下结合JSON进行数据交互,以实现一个完整的应用。 首先,我们需要了解Flexigrid的基本使用方法。在HTML页面中,我们需要引入jQuery库和...

    Spring MVC+JPA+Jquery+Flexigrid修改简单示例

    **Spring MVC + JPA + Jquery + Flexigrid 修改简单示例** 在现代Web开发中,Spring MVC作为Java企业级应用的主流框架,为开发者提供了强大的MVC(Model-View-Controller)架构支持。JPA(Java Persistence API)是...

    jquery+flexigrid+json的java例子(网上收集的)

    在“jquery+flexigrid+json的java例子”中,Flexigrid可能被用于创建一个可交互的数据表格,用户可以方便地查看、排序和过滤JSON格式的数据。 **JSON** JSON(JavaScript Object Notation)是一种轻量级的数据交换...

    jquery表格插件Flexigrid

    8. **错误处理和调试**:在实际开发过程中,可能会遇到Flexigrid的兼容性问题或者错误。学会阅读和理解浏览器的开发者工具中的错误信息,以及查阅官方文档和社区资源,对于解决问题至关重要。 9. **性能优化**:...

    Flexigrid与struts2的整合使用说明

    4. 服务器端集成:Flexigrid通过AJAX请求获取数据,因此你需要在Struts2的Action中处理这些请求。使用Struts2的Result类型(如JsonResult或FreemarkerResult)来返回JSON格式的数据,这些数据将被Flexigrid解析并...

    jquery插件之flexigrid篇

    标题“jquery插件之flexigrid篇”揭示了本文将主要围绕jQuery库中的flexigrid插件展开,讨论其特点、用法和在PHP环境下的应用。由于描述中提到“这个版本是php的”,我们可以理解为flexigrid可以与PHP后端无缝配合,...

    jquery+flexigrid使用方法.pdf

    在这个技术方案中,使用的技术栈包括Struts2.1.6、Spring、Hibernate、jQuery、Flexigrid、Thickbox以及MySQL数据库。Struts2作为MVC框架处理业务逻辑,Spring进行依赖注入和事务管理,Hibernate作为ORM工具简化...

    SSH整合应用+Jquary+Flexigrid实现表格数据显示

    SSH整合是指将Spring、Struts2和Hibernate这三个Java EE开发中的主流框架进行集成,以便构建高效、可维护的Web应用程序。在这个实例中,SSH整合被用于实现一个数据列表的显示功能,利用了Jquery框架的Flexigrid插件...

    jquery grid插件 Flexigrid + servlet

    Flexigrid可以与各种前端框架(如Bootstrap)和后端技术(如Spring MVC、Struts2)结合,构建完整的Web应用。通过合理的架构设计,可以使数据流、业务逻辑和视图层更好地解耦,提高代码的可维护性和复用性。 总的来...

    Jquery flexigrid使用

    本文详细介绍了如何利用Struts2.1.6、Spring、Hibernate、jQuery、Flexigrid、Thickbox和MySQL来构建一个具备动态分页和条件查询功能的Web应用。通过上述步骤,开发者可以轻松地将这些技术集成在一起,实现高效的...

    jquery flexigrid

    总的来说,jQuery Flexigrid是一款功能强大且易于使用的表格组件,它简化了网页数据展示的开发过程,提供了丰富的交互体验。无论是简单的数据展示,还是复杂的业务逻辑处理,Flexigrid都能游刃有余地应对,是Web开发...

    JQuery_插件FlexiGrid_之完全配置与使用

    ### JQuery插件FlexiGrid之完全配置与使用 #### 一、引言 FlexiGrid是一款基于jQuery的轻量级表格插件,它为开发者提供了简单易用的方式来展示和操作数据表格。FlexiGrid支持多种功能,如排序、分页、筛选等,非常...

    flexigrid集成Struts实现动态添加删除

    flexigrid表格控件的使用实例,实现了和struts1.3的集成,实现了动态添加和删除。 文档包括: user_mgr.jsp ,jsp页面 UserAction.jsp ,控制层Action js包,相关的js jar使用到的jar包

    jquery flexigrid 支持前台排序

    需要注意的是,由于Flexigrid和Tablesorter都是基于jQuery的插件,它们可能在某些事件处理或CSS样式上存在冲突。为了解决这些问题,我们可能需要对它们的默认行为进行一些调整,比如重写某些CSS规则,或者监听并处理...

Global site tag (gtag.js) - Google Analytics