看Ext的Desktop例子很好看,也实现了一些小模块,看到加载模块时有些晕了,不懂PHP,.NET也是才入门,还好原来做过JAVA的东东
在网上找到了http://qianlei007.iteye.com大大的改版QO,看了半天才发现QO的模块加载原来就是动态向JSP页面中写入JS文件
在JAVA中是这样实现的:
主页面中有如下内容
<%@ taglib prefix="sctt" uri="/sctt-tags" %>
<sctt:test></sctt:test>
在对应的配置文件中找到:
<tag>
<name>test</name>
<tag-class>org.system.client.core.web.taglib.ExtAjaxWebTag</tag-class>
<body-content>JSP</body-content>
<description><![CDATA[Import EXT Support]]></description>
</tag>
好了就是org.system.client.core.web.taglib.ExtAjaxWebTag这个类在干活
在类中找到:
htmlBuffer=service.getIndexTag(user, path, lineEnd);
再找service的实现,找到类public class UserServiceImpl implements IUserService
方法:
public StringBuffer getIndexTag(SysUser user,String path,String lineEnd)
该方法通过对用户权限的解析,在数据库中取出所有该用户有权访问的Modules的JS及CSS文件,同时生成EXT桌面的菜单、背景、桌面图标,一起加载到主页面上
QO的权限实现的比较大,用户、组、模块,同时为每个用户保存桌面的配置
小型应用中不需要这些,只需要加载桌面就可以了,采用用户角色来控制模块访问权限
正在做ASP.net的实现,先写到这里!