OperaMasks作为一个表现层框架,那么其属于对于资源机制的处理是每一个表现层框架必须处理的。
OperaMasks使用了EXT作为展现层的js支撑,其布局组件的资源渲染出的代码如下:
new Ext.Panel({
layout:border,
items[
new Ext.Panel({
//****
})
]
});
OperaMasks所有的资源渲染在AjaxPageRenderer.java类的encodePageBegin里面,也就是head渲染出来的时候同时将资源处理好。
//将每一个组件所包含的getDependedJSPackages和getDependedCSSPackages中的资源
//写入到ComponentResource中
rm.consumeResourceRegister(context, viewRoot);
// 若组件的渲染类实现了ResourceRenderer,此方法被执行,一般用于注入若干资源,如:
// ComponentResource.getResourceInstance(rm).addInitScript(getActionURLVarDefinition(context, component));
rm.consumeInitScriptBegin(context, viewRoot);// 新机制
// 此处处理资源管理器中的资源,每一个标志了@Container的渲染器在这里被调用,
rm.consumeContainerResources(context, viewRoot);
// 由于上一方法已经调用了容器类的渲染,当么当前方法则只将容器类的渲染过滤掉
rm.consumeResources(context, viewRoot);
// 与rm.consumeInitScriptBegin(context, viewRoot);对应,这里调的initScriptEnd
rm.consumeInitScriptEnd(context, viewRoot);// 新机制
// 这里开始渲染资源信息
rm.encodeBegin(context);
本文介绍了OperaMasks框架中的资源渲染机制,包括如何利用EXT进行布局组件的资源渲染,并详细解析了AjaxPageRenderer.java类中资源处理的具体流程。
326

被折叠的 条评论
为什么被折叠?



