该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-18
我也是这么在用的.感觉还行
|
|
返回顶楼 | |
发表时间:2009-06-18
同样不看好楼主的做法.去年我写了好几个月的struts2标签,非常不喜欢freeMark.感觉还不如直接写js来的方便.再说js都觉得难学的话,也没有什么别的语言更容易了.
|
|
返回顶楼 | |
发表时间:2009-06-18
下面是我的extjsptags的一段代码,其中jsp如下:
<%@ page contentType="text/html;charset=UTF-8" %> <%@ include file="/commons/taglibs.jsp" %> <gw:html> <gw:head> <base href="${ctx}/${basePath}"> <gw:title caption="用户管理"/> <%@ include file="/commons/button-icon.jsp" %> </gw:head> <script> //里有条件查询列表数据 function func_button_submitForm(){ queryGrid('sysUserinfoList','sysUserinfo'); } //重置查询条件 function func_button_resetForm(){ resetForm('sysUserinfo'); } //添加记录 function func_button_addRecord(){ var page = new pageDefine('insert-sys_userinfo.jsp',200,600); page.goPage(); } //修改记录 function func_button_updateRecord(){ var page = new pageDefine('txn990103.do',200,600); page.addGridValue('userId','sysUserinfoList:userId'); page.goPage(); } //删除记录 function func_button_deleteRecord(){ var page = new pageDefine('txn990106.do'); page.addGridValues('userId','sysUserinfoList:userId'); page.deleteRecord('确认删除选中的记录?','sysUserinfoList'); } </script> <gw:body> <gw:viewport> <gw:block title="查询用户管理" name="sysUserinfo" columns="2" height="150" region="north" > <gw:text name="username" fieldLabel="用户名" colspan="1" /> <gw:timebox name="email1" fieldLabel="电子邮箱" colspan="1" /> <gw:submit name="button_submitForm" handler="func_button_submitForm" /> <gw:reset name="button_resetForm" handler="func_button_resetForm" /> </gw:block> <gw:grid name="sysUserinfoList" title="用户管理列表" region="center" keyid="userId" rownum="false" checkbox="true" url="txn990102.do" > <gw:button text="增加用户管理" name="button_addRecord" handler="func_button_addRecord" icon="icon_add.gif" /> <gw:button text="修改用户管理" name="button_updateRecord" handler="func_button_updateRecord" enablerule="1" icon="icon_update.gif" /> <gw:button text="删除用户管理" name="button_deleteRecord" handler="func_button_deleteRecord" enablerule="2" icon="icon_delete.gif" /> <gw:cell dataIndex="userId" header="用户表ID" hidden="true" /> <gw:cell dataIndex="username" header="用户名" /> <gw:cell dataIndex="email" header="电子邮箱" /> <gw:cell dataIndex="add_time" header="添加日期" /> </gw:grid> </gw:viewport> </gw:body> </gw:html> 最终的html为: <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Cache-Control" content="no-store"/> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="0"/> <script src="http://localhost:8080/extjsptags/script/ext/ext-base.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/ext/ext-all.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/ext/ext-lang-zh_CN.js" type="text/javascript"></script> <link href="http://localhost:8080/extjsptags/script/ext/resources/css/ext-all.css" type="text/css" rel="stylesheet"> <script src="http://localhost:8080/extjsptags/script/extjsptag-form.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-public.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-grid.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-page.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-select.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-tree.js" type="text/javascript"></script> <base href="/extjsptags/module/yhqxgl/sys_userinfo/"> <title>用户管理</title> <style> .icon_add { background: url('/extjsptags/script/button-icon/icon_add.gif') 0 2 no-repeat !important; } .icon_delete { background: url('/extjsptags/script/button-icon/icon_delete.gif') 0 2 no-repeat !important; } .icon_update { background: url('/extjsptags/script/button-icon/icon_update.gif') 0 2 no-repeat !important; } .icon-pub1 { background: url('/extjsptags/script/button-icon/icon-pub1.gif') 0 0 no-repeat !important; } *{font-size:14px;} </style> </head> <script> //里有条件查询列表数据 function func_button_submitForm(){ queryGrid('sysUserinfoList','sysUserinfo'); } //重置查询条件 function func_button_resetForm(){ resetForm('sysUserinfo'); } //添加记录 function func_button_addRecord(){ var page = new pageDefine('insert-sys_userinfo.jsp',200,600); page.goPage(); } //修改记录 function func_button_updateRecord(){ var page = new pageDefine('txn990103.do',200,600); page.addGridValue('userId','sysUserinfoList:userId'); page.goPage(); } //删除记录 function func_button_deleteRecord(){ var page = new pageDefine('txn990106.do'); page.addGridValues('userId','sysUserinfoList:userId'); page.deleteRecord('确认删除选中的记录?','sysUserinfoList'); } </script> <body> <script> var pWinCmpId = null; Ext.BLANK_IMAGE_URL = 'http://localhost:8080/extjsptags/script/ext/resources/images/default/s.gif'; var basePath = 'http://localhost:8080/extjsptags/module/yhqxgl/sys_userinfo/'; var rootPath = 'http://localhost:8080/extjsptags/'; Ext.onReady(function() { Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'qtip'; /******************下面开始Body内JavaScript代码输出************************/ var sysUserinfo_bodyWidth = document.body.clientWidth ; var sysUserinfo_columns = 2 * 2; var sysUserinfo_perWidth = sysUserinfo_bodyWidth/sysUserinfo_columns; var sysUserinfo = new Ext.form.FormPanel({ region:'north', buttonAlign:'center',frame:true,layout:'table', name:'sysUserinfo',id:'sysUserinfo',height:150,title:'查询用户管理', layoutConfig: {columns:sysUserinfo_columns}, defaults:{border:false,layout:'form',frame:false,labelAlign:'right',labelWidth:75,width:sysUserinfo_bodyWidth ,height:30} }); sysUserinfo.add({ name:'sysUserinfo_item_username',id:'sysUserinfo_item_username', colspan:2,bodyStyle:'padding:2px', width:sysUserinfo_perWidth*2-15 , items:{ xtype:'textfield',name:'username',anchor:'100%',fieldLabel:'用户名',id:'username' } }); sysUserinfo.add({ name:'sysUserinfo_item_email1',id:'sysUserinfo_item_email1', colspan:2,bodyStyle:'padding:2px', width:sysUserinfo_perWidth*2, items:{ xtype:'timefield',name:'email1',anchor:'100%',fieldLabel:'电子邮箱',id:'email1' } }); sysUserinfo.addButton({xtype:'button',name:'button_submitForm',handler:func_button_submitForm,text:'确 定',type:'submit',id:'button_submitForm'}); sysUserinfo.addButton({xtype:'button',name:'button_resetForm',handler:func_button_resetForm,text:'重 置',type:'reset',id:'button_resetForm'}); sysUserinfo.on("bodyresize", function(){ var _bodyWidth = document.body.clientWidth ; var sysUserinfo_columns = 2 * 2; var _perWidth = _bodyWidth/sysUserinfo_columns; sysUserinfo.getComponent("sysUserinfo_item_username").setWidth(_perWidth * 2-15); sysUserinfo.getComponent("sysUserinfo_item_email1").setWidth(_perWidth * 2-15); }); var sysUserinfoList_grid_record = Ext.data.Record.create([ {name:'userId',type:'string'}, {name:'username',type:'string'}, {name:'email',type:'string'}, {name:'add_time',type:'string'} ]); var sysUserinfoList_grid_store = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({url : 'http://localhost:8080/extjsptags/txn990102.do'}), reader : new Ext.data.JsonReader({root : 'result',totalProperty : 'totalCount',id : 'userId'}, sysUserinfoList_grid_record) }); var sysUserinfoList_grid_sm = new Ext.grid.CheckboxSelectionModel({dataIndex : 'userId'}); var sysUserinfoList_grid_cm = new Ext.grid.ColumnModel([ sysUserinfoList_grid_sm, {dataIndex:'userId',hidden:true,type:'string',header:'用户表ID'}, {dataIndex:'username',type:'string',header:'用户名'}, {dataIndex:'email',type:'string',header:'电子邮箱'}, {dataIndex:'add_time',type:'string',header:'添加日期'} ]); var displayMsg = '显示第【<b><font color=red>{0}</font></b>】条至第【<b><font color=red>{1}</font></b>】条 / 共【<b><font color=red>{2}</font></b>】条记录'; var sysUserinfoList_grid_bbar = new Ext.PagingToolbar({ store: sysUserinfoList_grid_store, displayMsg: displayMsg, emptyMsg: '没有信息', pageSize: 10, displayInfo: true, items: [' 每页显示数', new Ext.form.ComboBox({ store: new Ext.data.SimpleStore({ fields: ['abbr', 'state'], data: [[10, 10], [15, 15], [20, 20], [30, 30], [40, 40], [60, 60], [80, 80], [100, 100]] }), width: 50,displayField: 'state',typeAhead: true,mode: 'local',value: 10,triggerAction: 'all',selectOnFocus: true, listeners: { change: { fn: function(box, newValue, oldValue){ sysUserinfoList_grid_bbar_change_PageSize(newValue); } }, select: { fn: function(combo, value){ //sysUserinfoList_grid_bbar_change_PageSize(combo.getValue()); } } } })] }); function sysUserinfoList_grid_bbar_change_PageSize(newValue){ sysUserinfoList_grid_bbar['pageSize']=parseInt(newValue); sysUserinfoList.store.reload({ params : { start : 0, limit : newValue } }); }; var sysUserinfoList_grid_tbar = [ {xtype:'button',name:'button_addRecord',cls:'x-btn-text-icon',handler:func_button_addRecord,icon:'http://localhost:8080/extjsptags/script/button-icon/icon_add.gif',text:'增加用户管理',type:'button',id:'button_addRecord'},'-', {xtype:'button',name:'button_updateRecord',cls:'x-btn-text-icon',disabled:true,handler:func_button_updateRecord,icon:'http://localhost:8080/extjsptags/script/button-icon/icon_update.gif',text:'修改用户管理',type:'button',id:'button_updateRecord'},'-', {xtype:'button',name:'button_deleteRecord',cls:'x-btn-text-icon',disabled:true,handler:func_button_deleteRecord,icon:'http://localhost:8080/extjsptags/script/button-icon/icon_delete.gif',text:'删除用户管理',type:'button',id:'button_deleteRecord'} ]; var sysUserinfoList = new Ext.grid.EditorGridPanel({ viewConfig: { forceFit: true },clicksToEdit:1, ds : sysUserinfoList_grid_store, cm : sysUserinfoList_grid_cm, selModel : new Ext.grid.RowSelectionModel(),loadMask : true, tbar:sysUserinfoList_grid_tbar, bbar : sysUserinfoList_grid_bbar, bodyStyle:'width:100%', url:'http://localhost:8080/extjsptags/txn990102.do', name:'sysUserinfoList',region:'center',title:'用户管理列表',iconCls:'icon-pub1',id:'sysUserinfoList' }); sysUserinfoList.on("cellclick", function(){ var records = sysUserinfoList.getSelections(); if (!records || records.length == 0) { Ext.getCmp("button_updateRecord").disable(); Ext.getCmp("button_deleteRecord").disable(); } if (records.length == 1) { Ext.getCmp("button_updateRecord").enable(); Ext.getCmp("button_deleteRecord").enable(); } if (records.length > 1) { Ext.getCmp("button_updateRecord").disable(); Ext.getCmp("button_deleteRecord").enable(); } }); var viewport_bbf711369508430c820c941331e61afd = new Ext.Viewport({ layout:'border', items:[sysUserinfo,sysUserinfoList] }); try{doPageInit();}catch(e){} /******************Body内JavaScript代码输出结束************************/ }); </script> </body> </html> |
|
返回顶楼 | |
发表时间:2009-06-18
bingxue2332 写道 下面是我的extjsptags的一段代码,其中jsp如下: <%@ page contentType="text/html;charset=UTF-8" %> <%@ include file="/commons/taglibs.jsp" %> <gw:html> <gw:head> <base href="${ctx}/${basePath}"> <gw:title caption="用户管理"/> <%@ include file="/commons/button-icon.jsp" %> </gw:head> <script> //里有条件查询列表数据 function func_button_submitForm(){ queryGrid('sysUserinfoList','sysUserinfo'); } //重置查询条件 function func_button_resetForm(){ resetForm('sysUserinfo'); } //添加记录 function func_button_addRecord(){ var page = new pageDefine('insert-sys_userinfo.jsp',200,600); page.goPage(); } //修改记录 function func_button_updateRecord(){ var page = new pageDefine('txn990103.do',200,600); page.addGridValue('userId','sysUserinfoList:userId'); page.goPage(); } //删除记录 function func_button_deleteRecord(){ var page = new pageDefine('txn990106.do'); page.addGridValues('userId','sysUserinfoList:userId'); page.deleteRecord('确认删除选中的记录?','sysUserinfoList'); } </script> <gw:body> <gw:viewport> <gw:block title="查询用户管理" name="sysUserinfo" columns="2" height="150" region="north" > <gw:text name="username" fieldLabel="用户名" colspan="1" /> <gw:timebox name="email1" fieldLabel="电子邮箱" colspan="1" /> <gw:submit name="button_submitForm" handler="func_button_submitForm" /> <gw:reset name="button_resetForm" handler="func_button_resetForm" /> </gw:block> <gw:grid name="sysUserinfoList" title="用户管理列表" region="center" keyid="userId" rownum="false" checkbox="true" url="txn990102.do" > <gw:button text="增加用户管理" name="button_addRecord" handler="func_button_addRecord" icon="icon_add.gif" /> <gw:button text="修改用户管理" name="button_updateRecord" handler="func_button_updateRecord" enablerule="1" icon="icon_update.gif" /> <gw:button text="删除用户管理" name="button_deleteRecord" handler="func_button_deleteRecord" enablerule="2" icon="icon_delete.gif" /> <gw:cell dataIndex="userId" header="用户表ID" hidden="true" /> <gw:cell dataIndex="username" header="用户名" /> <gw:cell dataIndex="email" header="电子邮箱" /> <gw:cell dataIndex="add_time" header="添加日期" /> </gw:grid> </gw:viewport> </gw:body> </gw:html> 最终的html为: <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Cache-Control" content="no-store"/> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="0"/> <script src="http://localhost:8080/extjsptags/script/ext/ext-base.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/ext/ext-all.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/ext/ext-lang-zh_CN.js" type="text/javascript"></script> <link href="http://localhost:8080/extjsptags/script/ext/resources/css/ext-all.css" type="text/css" rel="stylesheet"> <script src="http://localhost:8080/extjsptags/script/extjsptag-form.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-public.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-grid.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-page.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-select.js" type="text/javascript"></script> <script src="http://localhost:8080/extjsptags/script/extjsptag-tree.js" type="text/javascript"></script> <base href="/extjsptags/module/yhqxgl/sys_userinfo/"> <title>用户管理</title> <style> .icon_add { background: url('/extjsptags/script/button-icon/icon_add.gif') 0 2 no-repeat !important; } .icon_delete { background: url('/extjsptags/script/button-icon/icon_delete.gif') 0 2 no-repeat !important; } .icon_update { background: url('/extjsptags/script/button-icon/icon_update.gif') 0 2 no-repeat !important; } .icon-pub1 { background: url('/extjsptags/script/button-icon/icon-pub1.gif') 0 0 no-repeat !important; } *{font-size:14px;} </style> </head> <script> //里有条件查询列表数据 function func_button_submitForm(){ queryGrid('sysUserinfoList','sysUserinfo'); } //重置查询条件 function func_button_resetForm(){ resetForm('sysUserinfo'); } //添加记录 function func_button_addRecord(){ var page = new pageDefine('insert-sys_userinfo.jsp',200,600); page.goPage(); } //修改记录 function func_button_updateRecord(){ var page = new pageDefine('txn990103.do',200,600); page.addGridValue('userId','sysUserinfoList:userId'); page.goPage(); } //删除记录 function func_button_deleteRecord(){ var page = new pageDefine('txn990106.do'); page.addGridValues('userId','sysUserinfoList:userId'); page.deleteRecord('确认删除选中的记录?','sysUserinfoList'); } </script> <body> <script> var pWinCmpId = null; Ext.BLANK_IMAGE_URL = 'http://localhost:8080/extjsptags/script/ext/resources/images/default/s.gif'; var basePath = 'http://localhost:8080/extjsptags/module/yhqxgl/sys_userinfo/'; var rootPath = 'http://localhost:8080/extjsptags/'; Ext.onReady(function() { Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'qtip'; /******************下面开始Body内JavaScript代码输出************************/ var sysUserinfo_bodyWidth = document.body.clientWidth ; var sysUserinfo_columns = 2 * 2; var sysUserinfo_perWidth = sysUserinfo_bodyWidth/sysUserinfo_columns; var sysUserinfo = new Ext.form.FormPanel({ region:'north', buttonAlign:'center',frame:true,layout:'table', name:'sysUserinfo',id:'sysUserinfo',height:150,title:'查询用户管理', layoutConfig: {columns:sysUserinfo_columns}, defaults:{border:false,layout:'form',frame:false,labelAlign:'right',labelWidth:75,width:sysUserinfo_bodyWidth ,height:30} }); sysUserinfo.add({ name:'sysUserinfo_item_username',id:'sysUserinfo_item_username', colspan:2,bodyStyle:'padding:2px', width:sysUserinfo_perWidth*2-15 , items:{ xtype:'textfield',name:'username',anchor:'100%',fieldLabel:'用户名',id:'username' } }); sysUserinfo.add({ name:'sysUserinfo_item_email1',id:'sysUserinfo_item_email1', colspan:2,bodyStyle:'padding:2px', width:sysUserinfo_perWidth*2, items:{ xtype:'timefield',name:'email1',anchor:'100%',fieldLabel:'电子邮箱',id:'email1' } }); sysUserinfo.addButton({xtype:'button',name:'button_submitForm',handler:func_button_submitForm,text:'确 定',type:'submit',id:'button_submitForm'}); sysUserinfo.addButton({xtype:'button',name:'button_resetForm',handler:func_button_resetForm,text:'重 置',type:'reset',id:'button_resetForm'}); sysUserinfo.on("bodyresize", function(){ var _bodyWidth = document.body.clientWidth ; var sysUserinfo_columns = 2 * 2; var _perWidth = _bodyWidth/sysUserinfo_columns; sysUserinfo.getComponent("sysUserinfo_item_username").setWidth(_perWidth * 2-15); sysUserinfo.getComponent("sysUserinfo_item_email1").setWidth(_perWidth * 2-15); }); var sysUserinfoList_grid_record = Ext.data.Record.create([ {name:'userId',type:'string'}, {name:'username',type:'string'}, {name:'email',type:'string'}, {name:'add_time',type:'string'} ]); var sysUserinfoList_grid_store = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({url : 'http://localhost:8080/extjsptags/txn990102.do'}), reader : new Ext.data.JsonReader({root : 'result',totalProperty : 'totalCount',id : 'userId'}, sysUserinfoList_grid_record) }); var sysUserinfoList_grid_sm = new Ext.grid.CheckboxSelectionModel({dataIndex : 'userId'}); var sysUserinfoList_grid_cm = new Ext.grid.ColumnModel([ sysUserinfoList_grid_sm, {dataIndex:'userId',hidden:true,type:'string',header:'用户表ID'}, {dataIndex:'username',type:'string',header:'用户名'}, {dataIndex:'email',type:'string',header:'电子邮箱'}, {dataIndex:'add_time',type:'string',header:'添加日期'} ]); var displayMsg = '显示第【<b><font color=red>{0}</font></b>】条至第【<b><font color=red>{1}</font></b>】条 / 共【<b><font color=red>{2}</font></b>】条记录'; var sysUserinfoList_grid_bbar = new Ext.PagingToolbar({ store: sysUserinfoList_grid_store, displayMsg: displayMsg, emptyMsg: '没有信息', pageSize: 10, displayInfo: true, items: [' 每页显示数', new Ext.form.ComboBox({ store: new Ext.data.SimpleStore({ fields: ['abbr', 'state'], data: [[10, 10], [15, 15], [20, 20], [30, 30], [40, 40], [60, 60], [80, 80], [100, 100]] }), width: 50,displayField: 'state',typeAhead: true,mode: 'local',value: 10,triggerAction: 'all',selectOnFocus: true, listeners: { change: { fn: function(box, newValue, oldValue){ sysUserinfoList_grid_bbar_change_PageSize(newValue); } }, select: { fn: function(combo, value){ //sysUserinfoList_grid_bbar_change_PageSize(combo.getValue()); } } } })] }); function sysUserinfoList_grid_bbar_change_PageSize(newValue){ sysUserinfoList_grid_bbar['pageSize']=parseInt(newValue); sysUserinfoList.store.reload({ params : { start : 0, limit : newValue } }); }; var sysUserinfoList_grid_tbar = [ {xtype:'button',name:'button_addRecord',cls:'x-btn-text-icon',handler:func_button_addRecord,icon:'http://localhost:8080/extjsptags/script/button-icon/icon_add.gif',text:'增加用户管理',type:'button',id:'button_addRecord'},'-', {xtype:'button',name:'button_updateRecord',cls:'x-btn-text-icon',disabled:true,handler:func_button_updateRecord,icon:'http://localhost:8080/extjsptags/script/button-icon/icon_update.gif',text:'修改用户管理',type:'button',id:'button_updateRecord'},'-', {xtype:'button',name:'button_deleteRecord',cls:'x-btn-text-icon',disabled:true,handler:func_button_deleteRecord,icon:'http://localhost:8080/extjsptags/script/button-icon/icon_delete.gif',text:'删除用户管理',type:'button',id:'button_deleteRecord'} ]; var sysUserinfoList = new Ext.grid.EditorGridPanel({ viewConfig: { forceFit: true },clicksToEdit:1, ds : sysUserinfoList_grid_store, cm : sysUserinfoList_grid_cm, selModel : new Ext.grid.RowSelectionModel(),loadMask : true, tbar:sysUserinfoList_grid_tbar, bbar : sysUserinfoList_grid_bbar, bodyStyle:'width:100%', url:'http://localhost:8080/extjsptags/txn990102.do', name:'sysUserinfoList',region:'center',title:'用户管理列表',iconCls:'icon-pub1',id:'sysUserinfoList' }); sysUserinfoList.on("cellclick", function(){ var records = sysUserinfoList.getSelections(); if (!records || records.length == 0) { Ext.getCmp("button_updateRecord").disable(); Ext.getCmp("button_deleteRecord").disable(); } if (records.length == 1) { Ext.getCmp("button_updateRecord").enable(); Ext.getCmp("button_deleteRecord").enable(); } if (records.length > 1) { Ext.getCmp("button_updateRecord").disable(); Ext.getCmp("button_deleteRecord").enable(); } }); var viewport_bbf711369508430c820c941331e61afd = new Ext.Viewport({ layout:'border', items:[sysUserinfo,sysUserinfoList] }); try{doPageInit();}catch(e){} /******************Body内JavaScript代码输出结束************************/ }); </script> </body> </html> 楼上的代码好恐怖。。。写个简单的页面程序,的确是很容易,一旦交互的场景很严格的话,简单的html+js很难做得完美,而复杂如extjs的学习成本也比较高。。。怎么做都感觉难。。。。 |
|
返回顶楼 | |
发表时间:2009-06-18
Ext的维护难度在于1.Ext的语法.2.复杂的逻辑结构.
我最近也在构想一套方案,将Ext的定义和逻辑分开. 这样,定义部分就是语法部分.逻辑部分就是javascript了. 维护部分多数情况是是对javascript进行处理. 这样就降低了难度和耦合. |
|
返回顶楼 | |
发表时间:2009-06-18
非常好的解决方案。我也正在考虑中。单纯的写ext太麻烦了。
|
|
返回顶楼 | |
发表时间:2009-06-18
对任何试图掩盖JavaScript的工具都不感冒(除了rjs看起来很美)。手写JavaScript很爽。Ext的jsp tag我也封装过,想足够灵活不可能;扩展、维护是噩梦。
|
|
返回顶楼 | |
发表时间:2009-06-18
楼主想法还是不错的呢~!
|
|
返回顶楼 | |
发表时间:2009-06-18
我觉得可以扩展一些适合自己项目的组件,很多实现细节你可以在组件里封装起来,这样培训成本也不会高
|
|
返回顶楼 | |
发表时间:2009-06-18
LZ,你简直就是无理取闹
我觉的你作的真的很不实用 |
|
返回顶楼 | |