zoukankan      html  css  js  c++  java
  • 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中就好了

    走在一起是缘分,在一起走是幸福; 在一起走是缘分,走在一起是幸福
  • 相关阅读:
    13张PPT带你了解主动式消息队列处理集群
    TomatoLog-1.1.0实现ILoggerFactory
    番茄日志发布1.0.3版本-增加Kafka支持
    博客园升级有感一点建议
    上车时机已到--.NETCore是适应时代发展的雄鹰利剑
    花5分钟时间来了解一下高性能网关Kong会有意外收获
    Asp.NETCore让FromServices回来
    高速输出-我们戏说缓存
    Consul-template+nginx实现自动负载均衡
    Consul初探-集成ocelot
  • 原文地址:https://www.cnblogs.com/tarena/p/3771349.html
Copyright © 2011-2022 走看看