Apusic OperaMasks 1.1 Release 发布
主要修复了自1.1M3版本以来的BUG,增强了AOM产品稳定性。
新增特性:
1. 增强了树组件api,可动态增删树节点和修改树状态(text,image)。
2. 对Tree组件补充了renderKitId为HTML_BASIC的renderer。
3. 增加了Tree组件的CheckTreeNode。
4. 新增Toolbar组件,能够单独存在,或者嵌在别的组件里面,例如DataGrid。
5. 新增EditDataGrid组件,可在线编辑数据。
6. EditDataGrid组件及DataGrid组件支持内嵌式工具栏。
7. 调整了Grid,Border Layout,Tree组件的服务端API,使其更加的强大方便。
8. FileUpload组件可以在服务端进行是否为空的校验。
9. 重构build脚本,重新规划发布的产品包形态,原有的jsfdemo目录重构为rcdemos。
10. 新增模板布局的例子。
修复的问题:
1. 内嵌在其它AjaxUpdater内的子AjaxUpdater,无法被Ajax请求激活。
2. dialog组件在IE下有时会阻断页面。
3. 由于IE定义全局js变量的方式不兼容ECMAScript,导致在返回Ajax响应时会出现js错误。
4. dialog重绘内容的错误
5. ForEach组件不能迭代自组件的错误。
6. combo在ajax方式下,放在dialog里面render有问题
7. 在其他应用服务器中Dialog组件报“属性没有找到”的错误。
8. 与Spring集成发生ClassCast错误。
兼容性:
树组件做了较大重构,基于以前aom版本的应用程序,需要做一些修改才能在aom v1.1中正常工作
1.org.operamasks.faces.component.widget.TreeNode已经被移除,
使用org.operamasks.faces.component.widget.UITreeNode代替它。
2.org.operamasks.faces.component.widget.tree.TreeEventType.CLICK,
org.operamasks.faces.component.widget.tree.TreeEventType.DOUBLE_CLICK,
org.operamasks.faces.component.widget.tree.TreeEventType.SELECT,
org.operamasks.faces.component.widget.tree.TreeEventType.EXPAND,
org.operamasks.faces.component.widget.tree.TreeEventType.COLLAPSE被移除,
使用org.operamasks.faces.component.widget.UITreeNode.CLICK,
org.operamasks.faces.component.widget.UITreeNode.DOUBLE_CLICK,
org.operamasks.faces.component.widget.UITreeNode.SELECT,
org.operamasks.faces.component.widget.UITreeNode.EXPAND,
org.operamasks.faces.component.widget.UITreeNode.COLLAPSE代替。
3.原来的org.operamasks.faces.component.widget.tree.TreeEventType枚举被重构为
org.operamasks.faces.component.widget.tree.event.TreeEventType接口,
所以以前类似if (event == TreeEventType.CLICK)这样的语句,
需要改为if (TreeEventType.CLICK.equals(event))的形式。
w:tree 动态树报错!
我按beijing2008-spring的例子做的工程,以前用beijing2008-spring WEB-INF/lib的包工程可以跑起来,数据库访问都没问题,但是换成operamaskfaces_1.1就报如下错误: Http Status 500
javax.el.MethodNotFoundException at org.operamasks.el.parser.ELNode$ACCESS.getMethod(ELNode.java:368) at org.operamasks.el.parser.ELNode$ACCESS.invoke(ELNode.java:356) at org.operamasks.el.eval.MethodExpressionImpl.invoke(MethodExpressionImpl.java:66) at org.operamasks.faces.component.widget.UITree.loadAsyncNodes(UITree.java:407) at org.operamasks.faces.component.widget.tree.DefaultTreeNodeModel.processEvent(DefaultTreeNodeModel.java:62) at org.operamasks.faces.component.widget.tree.TreeNodeModelFactory.processEvent(TreeNodeModelFactory.java:147) at org.operamasks.faces.render.widget.yuiext.TreeNodeRenderer.processEvent(TreeNodeRenderer.java:61) at org.operamasks.faces.render.widget.yuiext.TreeNodeRenderer.decode(TreeNodeRenderer.java:46) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:761) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1003) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIForm.processDecodes(UIForm.java:203) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:998) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:493) at org.operamasks.faces.lifecycle.LifecycleImpl$ApplyRequestValues.execute(LifecycleImpl.java:247) at org.operamasks.faces.lifecycle.LifecycleImpl.doPhase(LifecycleImpl.java:113) at org.operamasks.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:80) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) at com.apusic.web.container.ServletComponent.service(Unknown Source) at com.apusic.web.container.WebContainer.invoke(Unknown Source) at com.apusic.web.container.WebContainer.processRequest(Unknown Source) at com.apusic.web.http.VirtualHost.processRequest(Unknown Source) at com.apusic.web.http.HttpServer.processRequest(Unknown Source) at com.apusic.web.http.HttpConnectionHandler.service(Unknown Source) at com.apusic.web.http.ConnectionHandler.processRequest(Unknown Source) at com.apusic.web.http.ConnectionHandler.processConnection(Unknown Source) at com.apusic.web.http.ConnectionHandler.run(Unknown Source) at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)
-------------------------------------------------------------------------------- 是什么原因?希望能提供operamasks-faces_1.1的例子。。。。。