论坛首页 AJAX版 EXT

ext-taglib VS visual editro

浏览 1370 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-08-07

 缘起:
1.lqql仁兄要自己开发出一个ext和taglib结合的东西,开发人员只要通过配置就可以实现taglib调用ext,他的出发点是java开发人员无需知晓js就可以直接运用ext;
2.大安仁兄说ext很快就出visual editor,开发人员只要拖拽就可以实现前端的开发。so,根本没有必要去做ext与taglib的接口~~
3.两者的论点一下子就提到了是ext-taglib好还是visual editor好

有耐心的同志可以慢慢看完,这是qq群中的聊天记录
  C.C   15:29:41
lqql同志,我们公司原来的项目也是用taglib做的,你这样的做法给我提供了个参考,不错~~~~~
lqql  15:30:20
....

lqql  15:30:35
我想做一个开源的ext-taglib

lqql  15:31:19
但是因为没有用ext做过项目,所以很多东西都不太清楚!
  C.C   15:31:22
哦,那就是把ext全部封装在taglib里面喽?直接用taglib就ok了?
lqql  15:31:47
是的!

大安 15:31:55
干吗要用taglib动态生成ext
  C.C   15:32:13
恩,大安有新的想法了

  C.C   15:32:18
我知道为什么
lqql  15:32:22
因为为了提高开发效率!
OMagic 15:32:21
taglib这个库大吗
lqql  15:32:30
不大!

  C.C   15:32:28
因为他不熟悉ext
  C.C   15:32:37
他熟悉taglib
lqql  15:32:57
开发一个项目,并不能要求每个人都懂EXT

lqql  15:33:13
但是要会用taglib却很简单!

大安 15:33:37
这样反而复杂了,既要懂taglib又要懂ext
lqql  15:33:51
不需要懂ext啊!

lqql  15:34:00
只要知道属性就可以了!

  C.C   15:34:03
大安,lqql的意思是只要他懂得taglib也懂得ext就可以了
  C.C 
我知道为什么
lqql
因为为了提高开发效率!
OMagic(93878495) 15:32:21
taglib这个库大吗
  C.C  ( ) 15:32:30
因为他不熟悉ext
lqql ( ) 15:32:30
不大!

  C.C  ( ) 15:32:37
他熟悉taglib
lqql ( ) 15:32:57
开发一个项目,并不能要求每个人都懂EXT

lqql ( ) 15:33:13
但是要会用taglib却很简单!

大安(12027555) 15:33:37
这样反而复杂了,既要懂taglib又要懂ext
lqql ( ) 15:33:51
不需要懂ext啊!

lqql ( ) 15:34:00
只要知道属性就可以了!

  C.C  ( ) 15:34:02
大安,lqql的意思是只要他懂得taglib也懂得ext就可以了
  C.C  ( ) 15:34:21
其他的开发人员直接用taglib就可以实现开发,这样
lqql ( ) 15:34:29
对!

lqql ( ) 15:34:36
这样代码也好控制!

lqql ( ) 15:34:44
因为只是标签代码!

  C.C  ( ) 15:34:51
目前还没有人这么做过
lqql ( ) 15:34:52
而不是一大段一大段的JS代码!

  C.C  ( ) 15:35:08
这个是个新思路~
lqql ( ) 15:35:51
我这个taglib里会有一个配置文件!

  C.C  ( ) 15:36:13
大安,说说你的看法

lqql ( ) 15:36:23
 
lqql ( ) 15:36:40
js代码可以在配置文件里修改!

lqql ( ) 15:37:37
我只是实现了一部分!
  C.C  ( ) 15:37:42
哦!!!
lqql ( ) 15:38:06
${}里的就是要设置的属性!

  C.C  ( ) 15:38:31

  C.C  ( ) 15:38:50
你是不是把ext的js直接放在配置文件里?
lqql ( ) 15:38:56
是的!

  C.C  ( ) 15:39:09
那这个配置文件岂不是很大?
  C.C  ( ) 15:39:15
还有如何实现ajax?
lqql ( ) 15:39:28
不是EXT的JS文件,是用ext来写的JS!

  C.C  ( ) 15:39:36

lqql ( ) 15:39:48
实现ajax?
  C.C  ( ) 15:39:54
那写这样写出来的配置文件如何解析?
lqql ( ) 15:40:42
在应用加载的时候,把配置文件解析掉,并在内存中存入一个map中!
lqql ( ) 15:40:55
用的时候就不用去解析了,直接取就行了!

  C.C  ( ) 15:40:58
哦~
  C.C  ( ) 15:41:15
那你测过没?服务端的负载会大吗?
lqql ( ) 15:41:23
这个不会的!

  C.C  ( ) 15:41:24
你的思路真新颖
  C.C  ( ) 15:41:29
不错~~~

lqql ( ) 15:41:40
不过我不知道大量taglib的时候会不会慢!
  C.C  ( ) 15:42:05
你这个实现过程有没有什么样例?
lqql ( ) 15:42:10
而且ext生成的控件,相当吃客户机内存!

lqql ( ) 15:42:23
什么意思?!

  C.C  ( ) 15:42:29
弄个小例子给我们看看
  C.C  ( ) 15:42:40
大家一起做这个接口~

  C.C  ( ) 15:42:42
呵呵~
lqql ( ) 15:42:43
我现在只写了一个dialog啊,就是上面截的图!

  C.C  ( ) 15:42:46
哦~~
  C.C  ( ) 15:43:00
能不能详细点?
  C.C  ( ) 15:43:18
我对你解析后弄到map这个有点不懂
lqql ( ) 15:43:23
...

lqql ( ) 15:43:56
用java解析一个xml你会吗?!

  C.C  ( ) 15:44:18
恩,没玩过,我都是用框架做
lqql ( ) 15:44:24
....
  阿罡(16578548) 15:44:31
用什么框架?
  阿罡(16578548) 15:44:42
支持ext的??
lqql ( ) 15:44:44
public class TagStart extends HttpServlet{
 
 public void init() {
   try {
    DocumentBuilderFactory factory = DocumentBuilderFactory
    .newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    Document doc = parser.parse(this.getServletContext().getRealPath("/WEB-INF/mytag-config.xml"));
    NodeList nodeList = doc.getElementsByTagName("tag");
    if(nodeList!=null){
     for(int i=0;i       
      Element element=(Element)nodeList.item(i);
      String name=element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
      if(name!=null){
       name=name.trim();
      }else{
       name="";
      }
      String start=element.getElementsByTagName("start").item(0).getChildNodes().item(1).getNodeValue();
      if(start!=null){
       start=start.trim();
      }else{
       start="";
      }
      String end=element.getElementsByTagName("end").item(0).getChildNodes().item(1).getNodeValue();
      if(end!=null){
       end=end.trim();
      }else{
       end="";
      }
      String script="";
      if(element.getElementsByTagName("script").getLength()>0){
       script=element.getElementsByTagName("script").item(0).getChildNodes().item(1).getNodeValue();
      }
      if(script!=null){
       script=script.trim();
      }else{
       script="";
      }
      Constant.map.put(name+"-start", start);
      Constant.map.put(name+"-end", end);
      Constant.map.put(name+"-script", script);   
     }
    }
   } catch (ParserConfigurationException e) {
    e.printStackTrace();
   } catch (SAXException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
 }
}
lqql ( ) 15:45:20
就是一个servlet 重写init方法!
lqql ( ) 15:47:05
你写一个servlet不就行了啊!

lqql ( ) 15:47:30
干嘛要用action?用action就不能在加载的时候init了!
大安(12027555) 15:47:30
俺正在干力气活,没看明白他的意思,sorry
  C.C  ( ) 15:47:35

  C.C  ( ) 15:47:44
我知道了
  C.C  ( ) 15:48:05
可是你就为了弄个taglib这样做是否太麻烦了
  C.C  ( ) 15:48:15
特别是配置,ext里面的ui小组件那么多
  C.C  ( ) 15:48:21
那你的配置不就很多吗?
lqql ( ) 15:48:49
这个有什么关系,配置文件就是因为ui多啊!
lqql ( ) 15:49:03
少的话还要配置文件干什么?!
  C.C  ( ) 15:49:23
还有个问题
lqql ( ) 15:49:32
什么问题!?
lqql ( ) 15:49:39
大安,我有个问题!

lqql ( ) 15:49:44
showDialog : function(){
            if(!dialog){ // lazy initialize the dialog and only create it once
                dialog = new Ext.LayoutDialog("hello-dlg", {
                        modal:true,
                        width:600,
                        height:400,
                        shadow:true,
                        minWidth:300,
                        minHeight:300,
                        proxyDrag: true,
                        west: {
                       
                         initialSize: 150,
                         minSize: 100,
                         maxSize: 250,
                         titlebar: true,
                         collapsible: true,
                         animate: true
                     },

                     center: {
                         autoScroll:true,
                         tabPosition: 'top',
                         closeOnTab: true,
                         alwaysShowTabs: true
                     }
                });
                dialog.addKeyListener(27, dialog.hide, dialog);
                dialog.addButton('Submit', dialog.hide, dialog);
                dialog.addButton('Close', dialog.hide, dialog);
               
                var layout = dialog.getLayout();
                layout.beginUpdate();
                layout.add('west', new Ext.ContentPanel('west', {title: 'West', split:false}));
             layout.add('center', new Ext.ContentPanel('center', {title: 'The First Tab'}));
                // generate some other tabs
                layout.add('center', new Ext.ContentPanel(Ext.id(), {
                                        autoCreate:true, title: 'Another Tab', background:true}));
             layout.add('center', new Ext.ContentPanel(Ext.id(), {
                                        autoCreate:true, title: 'Third Tab', closable:true, background:true}));
             layout.endUpdate();
            }
            dialog.show(showBtn.dom);
  C.C  ( ) 15:49:50
配置文件解析后是什么?
lqql ( ) 15:49:53
你看上面这段代码!

lqql ( ) 15:50:04
  west: {
                       
                         initialSize: 150,
                         minSize: 100,
                         maxSize: 250,
                         titlebar: true,
                         collapsible: true,
                         animate: true
                     },

                     center: {
                         autoScroll:true,
                         tabPosition: 'top',
                         closeOnTab: true,
                         alwaysShowTabs: true
                     }

lqql ( ) 15:50:12
这个是直接写在dialog中的!

lqql ( ) 15:50:46
大安,谢谢了!

lqql ( ) 15:50:38
我想在dialog外,把west等注放,要怎么做?!
lqql ( ) 15:51:06
to-cc
lqql ( ) 15:51:08
Constant.map.put(name+"-start", start);
      Constant.map.put(name+"-end", end);
      Constant.map.put(name+"-script", script);

lqql ( ) 15:51:15
是一个map

lqql ( ) 15:51:22
HashMap

大安(12027555) 15:52:12
new 个LayoutRegion啊
  C.C  ( ) 15:53:00

lqql ( ) 15:56:48
是怎么写到dialog里去
lqql ( ) 15:57:28
说详细点好嘛,麻烦了,我看这个东西,才几天!

大安(12027555) 15:57:49
var r = new Ext.LayoutRegion;

然后layout里面west: r
lqql ( ) 15:59:40
也就是说不需要直接写在里面的是吧!
大安(12027555) 16:00:53
当然
lqql ( ) 16:01:05
哦,明白了,我试试!


   用户117747078被创建者(45865355)批准加入本群。

lqql ( ) 16:01:28
我把那个dialog写好了,发给大家看看!

  C.C  ( ) 16:01:49
哦,好的~~
  C.C  ( ) 16:01:56
有创意!
lqql ( ) 16:02:02
还有一个问题,就是那个ext all那个JS可以拆分吧?!

lqql ( ) 16:02:26
因为那个文件比较大,我想实现依赖注入!
安了!(117747078) 16:04:27
大家好,我是EXT初学者。
哪位有ext tree的完整例子,发给我一份好吗?最好有服务端的。
谢谢。

大安(12027555) 16:05:18
ext的visual editor相信会出来,taglib->ext就不必了
  C.C  ( ) 16:05:54
visual editor是什么作用?
  阿罡(16578548) 16:05:58
taglib->ext还是很有必要的
  阿罡(16578548) 16:06:16
就算没有taglib->ext,也会有其他的plugins出现的
  C.C  ( ) 16:06:27
哦~~~
lqql ( ) 16:06:31
你不可以要求每个java开发者都用visual editor吧

大安(12027555) 16:09:07
taglib->ext有啥好处
lqql ( ) 16:09:40
可以让任何一个java开发员,轻松的使用!

  C.C  ( ) 16:09:54
恩,不错,我支持lqql!~
大安(12027555) 16:10:02
那这个java开发员需要熟悉ext么?
lqql ( ) 16:10:24
不需要!

  阿罡(16578548) 16:10:40
其实就是封装的更容易使用些。。。
lqql ( ) 16:10:46
对啊!

安了!(117747078) 16:10:53
各位大哥,ext tree中,服务端返回一个json客户端怎么得到啊?
大安(12027555) 16:10:54
那他怎么知道最终成什么样的ext widgets
大安(12027555) 16:11:02
xmlreader
大安(12027555) 16:11:08
jsonreader
J★土匪★E(190891071) 16:11:20
问下大家布局里面的contentPanel里面的URL怎么会是乱码
J★土匪★E(190891071) 16:11:25
取出来的数据
J★土匪★E(190891071) 16:11:29
有什么方法解决不
lqql ( ) 16:12:07
大安你说的最终成什么样的是说编缉的时候所见不所得的意思吗?!

大安(12027555) 16:12:30
visual editor就是所见所得
lqql ( ) 16:12:47
 
大安(12027555) 16:12:51
你用taglib再转ext,有必要么
大安(12027555) 16:13:31
服务器增加了负担
  阿罡(16578548) 16:13:41
...
lqql ( ) 16:13:44
...

lqql ( ) 16:14:21
像你这样的开发成本是非常高的!

lqql ( ) 16:14:51
学习EXT,需要很高手JS水平!

  C.C  ( ) 16:15:02
恩,这一点我认同
lqql ( ) 16:15:08
如果有这么多高手平的程序,那另当别论!

  阿罡(16578548) 16:15:22
大安你想想,现在为什么这么多web框架,还不是为了封装的更方便和规范些,不然大家都直接写CGI,写SERVLET就好了
lqql ( ) 16:15:30
但是事实上,这是不可能的事!

  C.C  ( ) 16:15:35
不过visual editor这个创意也很简便
  C.C  ( ) 16:15:52
开发人员也无需通晓ext细节
  C.C  ( ) 16:16:03
一切靠拖拽就ok了
  阿罡(16578548) 16:16:41
2种方法都很有必要
大安(12027555) 16:16:51
to 阿罡:同意上面说的
大安(12027555) 16:17:19
taglib->ext现在有没有这样的框架?
  C.C  ( ) 16:17:36
建议frank把我们的聊天记录发到论坛上去
大安(12027555) 16:18:42
如果在设计时taglib->ext,还有点意思
OMagic(93878495) 16:18:56
可以直接设置的,就是可以把聊天记录保存在群里的
OMagic(93878495) 16:19:09
这样方便啊,我们什么时候都可以看我们的聊天记录了
lqql ( ) 16:20:22
to 大安,你说的是在设计的时候自动生成相关的JS?

   
最后更新时间:2007-08-07
等简单说一下吗?这么大一段,看的头疼。
   
0 请登录后投票
最后更新时间:2007-08-07
没啥新意。

Visual editor是快速开发的利器,但是也不能一统天下,否则MS早无敌了。

Taglib说明了声明性编程的好处,问题是声明性编程干嘛一定要用taglib呢。
   
0 请登录后投票
最后更新时间:2007-08-08
hax 写道
没啥新意。

Visual editor是快速开发的利器,但是也不能一统天下,否则MS早无敌了。

Taglib说明了声明性编程的好处,问题是声明性编程干嘛一定要用taglib呢。
呵呵,我也觉得taglib看着有点难受,不过你说为了java开发人员的方便为啥就要拐一个大弯?把ext和taglib结合起来?这样子对性能方面肯定是有影响的。visual editor虽然不能一统天下,但是可以肯定的是三分天下有其一
   
0 请登录后投票
论坛首页 AJAX版 EXT

跳转论坛:
JavaEye推荐