如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
等下要去坐车,今天就不继续唠叨开发过程了,来谈一下普遍比较关心的后台语言问题。
学习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开发基础的,不会太难。
以上粗略的介绍了将本示例修改为不同语言的版本的方式,如果有什么不明白的地方,欢迎给笔者留言,共同探讨不同语言的开发方式。如果有兴趣将本示例修改为不同语言版本的,而无从下手的,也欢迎与笔者联系,共同把本示例修改为不同语言版本的示例,供大家学习。