| echo2 advanced -1 |
|
1 WebContainerServlet是整个框架的入口,负责管理http连接,并为每个新的用户生成并分配一个新的ApplicationInstance; WebContainerServlet继承自HttpServlet,负责处理客户请求,包括渲染html页面,处理xml异步服务等(ajax).
2 ApplicationInstance代表每个用户实例的状态,它在用户连接后由WebContainerServlet生成,并保存在servlet容器的session中,因此它的生存期直到用户退出或session过期为止,所以可利用它来保存用户登录状态. ApplicationInstance为抽象类,需要提供自己的实现,且必须实现public Window init(),返回一个Window.
3 Window继承自Component类,但是只能放置一个ContentPane对象
4 ContentPane,WindowPane和SplitPane都是继承自Component,且实现了Pane和PaneContainer接口. Pane组件的父组件只能是Pane或Window. ContentPane只能有一个子组件,一般为Pane或Column,Row,Grid等容器型组件,当然也可以是任何组件.但是ContentPane可以含有多个floating window components,如WindowPane等.
5 如何编写自己的Echo2组件,例如MyTextField 1)新建MyTextField类,继承自TextField 2)新建MyTextFieldPeer类,继承TextComponentPeer 且实现DomUpdateSupport接口,并重写renderHtml方法,可以拷贝后修改. 3)注册组件,在META-INF/nextapp/echo2/下新建SynchronizePeerBindings.properties文件, 并加上一行: componentsPackage.MyTextField peersPackage.MyTextFieldPeer
6 如何在Echo2中通过内置javascript代码实现客户端验证及格式化. 例:增加一个MyTextField组件,验证用户输入不得为空. 1) 首先增加Component和Peer类,并注册,见5 2)增加自己的JavaScriptService 文件,如MyTextField.js,并在MyTextFieldPeer类中注册相应的JavaScriptService服务. 3)验证的javascript代码按一定格式写在MyTextField.js中. 4)在Peer类和js之间可以传递element的属性.
7 如何设置全局快捷键。 可利用echopointng包中的KeyStrokeListener类,加入action 例,见PatternB的TabbedPane中tab的切换键(Alt+PageDown(PageUp)) |
echo2 学习笔记 总结
最新推荐文章于 2024-04-02 16:32:41 发布
本文深入解析了Echo2框架的关键组成部分,包括WebContainerServlet的作用、ApplicationInstance的生命周期管理、Window及其内容面板的使用方法,以及如何自定义组件和实现客户端验证。
255

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



