等下要去坐车,今天就不继续唠叨开发过程了,来谈一下普遍比较关心的后台语言问题。

学习Ext JS,笔者一直强调学习的中心思路是“界面与数据是分离”。只要好好掌握这个思路,深入了解Ext JS的运作过程,就不会为后台语言使用什么而困扰了。可以说,只要思路明确,要将一个Ext JS项目迁移到不同的后台语言平台,那是轻而易举的事。下面就以本示例做一个简单的讲述。

如果你放下语言的包袱,坚持把本示例的文章看完,会有一个感觉,就是客户端的脚本文件和后台语言的结合文件,只有一个,就是首页index.cshtml,如果把该文件里的脚本都抽离出来,基本上,Ext JS与开发语言平台就没任何关系了,把Scripts目录复制到任何语言平台项目,都可以直接使用,修改的地方基本就是地址。如果使用Ext.Direct,这个就更彻底了,基本不需要做任何修改,后台语言有对应的方法就行了。如果清楚这一点,就好办了。

例如,要将本示例修改为Java版本的,如果Java架构不支持认证的验证,就把首页拆分成两个文件,一个专门是登录用的,一个是登录后跳转到的页面,这种方式估计熟悉Web开发的已经是家常便饭了。

在Ext JS中,主要的数据提交方式有三种:

1.        表单形式提交,该方式虽然也用Ajax方式提交,但是,后台的处理与基本的表单提交形式是没有任何区别的,因而,后台的数据处理方式,没什么难度,你懂的!不懂?这……好好补补HTML知识吧。这个最好的示例就是登录窗口的提交,可以尝试用自己熟悉的语言做一下练习。

2.        Ajax形式提交,这里的例子就是用户登录里的重置密码了,虽然数据格式不固定,但是提交参数是自己或项目已经定义好的,后台的数据处理方式与处理表单提交的数据区别不大。

3.        Store同步数据的提交方式,只要定义好Writer,使用同一种数据提交方式,那么后台数据处理方式是基本一致的。例如用户管理里的添加、编辑和删除操作,提交的数据都要从data关键字里提取,然后需要通过服务器端JSON对象的parse方法将提交的数据转换为JSON数组,再提取出具体的数据对象处理。Java的处理基本可以参照书中1.2.6节的方式进行处理。其它语言则可寻找相应的JSON库来处理。

在Ext JS中,数据的返回格式也是基本固定的,在示例中,目前的返回格式是两种:

1、  表单的错误信息:

{

success : true 或 false,

errors : {

field1 : "错误信息",

field2 : "错误信息",

...

}

}

2、  其它数据

{

success : true 或 false,

total : 数据总数,

data  : [...],

Msg   : "错误信息"

}

在示例中,无论是Store的同步操作还是Ajax数据的提交,都使用了第2种数据的返回格式,该格式基本是通用的。

清楚了Ext JS数据提交格式和返回格式,就知道如何提取数据和返回数据。只要按格式正确返回数据,Ext JS就能正常运行,不受任何后台语言的影响。至于在后台,使用什么语言,什么数据库,都没问题,这些都是开发人员已经掌握的技术,余下的就是根据格式返回数据。因而,要修改本示例也不难了。

例如,要显示用户数据,无论数据表格是什么结构,你从数据库中把数据提取出来后,根据格式2组织好数据返回就行了。你说你不懂怎么从数据库提取数据?这……这,我也教不了。

要添加用户,先根据提交格式把数据提取出来,然后使用自己的数据库添加数据方式把数据添加到数据库,根据数据返回格式2,把成功添加或添加失败的信息返回客户端,就是这么简单。编辑和删除的基本步骤也是这样的。

至于权限的控制,各种语言都有自己的方式,最简单的就是在各操作方法头部进行验证,如果验证发现不符合权限要求,那就根据数据返回格式2返回一个success为false,Msg信息为“您没有权限访问”的数据就行了。

数据处理方式清楚后,余下的就是要让Ext JS各操作的数据提交地址与服务器中的方法对应上,这个有Web开发基础的,不会太难。

以上粗略的介绍了将本示例修改为不同语言的版本的方式,如果有什么不明白的地方,欢迎给笔者留言,共同探讨不同语言的开发方式。如果有兴趣将本示例修改为不同语言版本的,而无从下手的,也欢迎与笔者联系,共同把本示例修改为不同语言版本的示例,供大家学习。

转载于:https://www.cnblogs.com/muyuge/archive/2012/09/29/6333745.html

如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本相关推荐

  1. 视频教程-SSM后台管理系统开发实战-Java

    SSM后台管理系统开发实战 5年IT从业经验,目前职位是Java高级工程师.架构师,在gitchat发布有<SSM博客系统开发实战>达人课,CSDN博客专家,博客专栏作者,梦境网项目独立开 ...

  2. Java项目:后台管理系统脚手架项目(java+SpringBoot+FreeMarker+mysql+JSP)

    源码获取:博客首页 "资源" 里下载! 项目描述: 这是一个基于SpringBoot框架开发的后台管理系统脚手架项目.之所以称为脚手架项目,是因为这个项目复用性很强,如果以后有其他 ...

  3. PHP7实战开发简单CMS内容管理系统(8)登录权限控制功能分离

    1.登录成功时将登录用户名写入session if($login_result->num_rows > 0){ $_SESSION['username'] = $username; hea ...

  4. PHP7实战开发简单CMS内容管理系统(11)批量删除栏目数据

    <删除>按钮: <a class="btn btn-danger btn-xs" id="del_btn" disabled="di ...

  5. 2023基于微信小程序的校园第二课堂活动报名系统+后台管理系统(Springboot+mysql)-JAVA.VUE(论文+开题报告+运行)

    摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,基 ...

  6. 基于微信小程序的服装童装商城+后台管理系统(SSM+mysql)-JAVA.VUE【毕业设计、论文、源码、开题报告】

    童装商城小程序 摘 要 随着移动应用技术的发展,越来越多的用户借助于移动手机.电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于城镇人口的增加,人们去商场购物总是排着长长的队伍,对于时 ...

  7. 基于微信小程序的健身房私教预约管理系统+后台管理系统(SSM+mysql)-JAVA.VUE【毕业设计、论文、源码、开题报告】

    摘 要 计算机技术的飞速发展带动了各种管理软件的兴起,对我们的工作管理.生活都是很大的帮助,本健身房私教预约微信小程序是采用小程序技术开发的对课程购买.预约工作的信息化.数字化管理,以改变传统的纸质预 ...

  8. thinkphp vue后台管理系统模板_vueadmin 基于vue-admin-template+thinkphp5的后台权限管理系统...

    vue-admin-thinkphp 是基于vue-admin-template+thinkphp5的后台权限管理系统 视频演示 目录介绍 1.vuestage 前端项目文件 2.vueadmin 后 ...

  9. 最新2023基于微信小程序的学生公寓生活管理系统+后台管理系统(SSM+mysql)-JAVA.VUE(毕业设计+论文+开题报告+运行)

    摘 要 随着信息化时代的到来,管理系统都趋向于智能化.系统化,学生公寓生活管理也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而 ...

最新文章

  1. @芥末的糖----------《后端加密》
  2. java调用方法的变量_JAVA类的方法调用和变量(全套)
  3. Leetcode 每日一题 40 组合2
  4. 易宝支付碰到 交易签名无效问题
  5. vue 中indexof_大厂Vue最佳实践总结,提高竞争力!
  6. INTERSPEECH2020 语音情感分析论文之我见
  7. Redis学习---(15)Redis 脚本
  8. 再谈typedef(重点为函数指针)
  9. C++函数内部实现的规则
  10. netsuite和java_Netsuite - 如何根据项目和位置搜索填充子列表
  11. Forms 凭票验证
  12. 用我的亲身经历来告诉你如何自学Java?
  13. 自动化立体仓库AS/RS货架|分离式仓库货架与整体式仓库货架如何运用?
  14. 即时配送,对接闪送预下单接口,报“签名校验失败”
  15. html 隐藏表格某一行,layui怎么隐藏表格行?
  16. dfs根目录_分布式文件系统DFS详细解读
  17. WindowsXP系统安装
  18. ShaderJoy —— “圆点消散” 的实现 【GLSL】
  19. flashback六大技术之flashback drop
  20. IntelliJ IDEA Maven报错 -Dmaven.multiModuleProjectDir

热门文章

  1. Pytorch | BERT模型实现,提供转换脚本【横扫NLP】
  2. Nignx集成fastDFS后访问Nginx一直在加载中解决
  3. AIFramework基本概念整理
  4. 多传感器融合:自动驾驶(上)
  5. 多实例gpu_MIG技术快速提高AI生产率
  6. Docker核心技术之数据管理
  7. ThinkPHP 详细介绍
  8. 【CV】Pytorch一小时入门教程-代码详解
  9. 零起点学算法10——求圆柱体的表面积
  10. Android 自定义View —— Paint