• Extjs 4.1 struts2.3 返回json 初试


      之前曾经使用过3.x版本的extjs,当时可以结合struts实现各种基本的增删查改。但是4.1版本中增加了一些属性,出现了一些新的使用方法,导致错误不断,有的时候调用到相应的action却返回不了值,有的时候连action也调用不到。这里特别记录下自己解决问题的过程。
    新版本的extjs中加入了model的概念,之前没有接触过。这里我理解为类的概念。extjs将json中的各条记录封装成一个类,这个类就可以理解为model。当然类中还是可以包含其他类的。(这样说感觉很奇怪,也可以将json理解为记录集,大的记录又可以包含小的记录。记录就是model的概念)
    继而在定义store的时候要指出使用的model。store中的一个新概念是proxy,(记得之前的url是可以直接写在store中的,不过很久没接触了,这点并不是很确定)。proxy可以理解为store生成的方法,后续对store的增、删、查、改貌似也与这个地方有关。将proxy的type定义为ajax,然后在url中指明生成json数据的action即好。store的大致结构如下:
    var store = Ext.create('Ext.data.Store',{
     storeId:'store',//后面再调用store的时候可能用到
     autoLoad:true,//自动加载,页面打开后不需要调用store.load()
     proxy:{
      type:'ajax',
      url:'xxx.action',
      reader:{
       type:'json'//返回数据类型
       root:'xxxx'
     }
    });

      接下来关键部分是action的实现,我的后台采用的是Java平台。配置了struts2.3。
      struts可以直接返回json形式的结果,这里注意为了完成相关的功能,比如struts配置文件中extend的类要为json-defaults而非struts-defaults则需要导入相关的包。除了struts所需的基本包以外,我还导入了struts2-json-plugin-2.3.8.jar,ognl-3.0.6.jar,ezmorph-1.0.6.jar,json-lib-2.3-jdk15.jar等包。这里struts配置的时候将result的type设置为json即可。
      java类在写的时候千万注意,不再需要像之前那样,将封装好的list对象,再转变为jsonobject,直接一个set,get方法,然后将相应的root的地方设置为这个list对象的名字即可。(这里研究了半天,测试是后台一直可以看到抓到了数据,但是前台就是没有数据记录)。
    至此,将相应的store放入grid panel中就好了

    走在一起是缘分,在一起走是幸福; 在一起走是缘分,走在一起是幸福
  • 相关阅读:
    jquery防冲突的写法
    easyUI.checkForm
    获取树形节根节点下面所有层级子节点
    自动发布web应用程序或者网站
    MVC UI Jquery
    Linq模糊查询
    常用正则表达式示例
    Easy UI中,当批量操作后,移除总复选框的选中状态
    常用的JS
    检查是否安装或运行了IIS服务
  • 原文地址:https://www.cnblogs.com/tarena/p/3771349.html
Copyright © 2020-2023  润新知