`

Ext增删改查

阅读更多
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表</title>
</head>
<script type="text/javascript">
	Ext.onReady(function(){
		//定义数据集对象
		var typeStore = new Ext.data.Store({//配置分组数据集
			//autoLoad :true,
			reader: new Ext.data.XmlReader({
				totalRecords: "results",
				record: "Users",  
				id: "id"
			},   
			Ext.data.Record.create([
				{name: 'id'},
				{name: 'username'},      
				{name: 'password'}  
			])
			),
			proxy : new Ext.data.HttpProxy({
				url : 'usersext.do?method=getUsersList'
			})
		})
		//创建工具栏组件
		var toolbar = new Ext.Toolbar([
			{text : '新增用户',iconCls:'add',handler : showAddUsersType},
			'-',
			{text : '修改用户',iconCls:'option',handler : showModifyUsersType},
			'-',
			{text : '删除用户',iconCls:'remove',handler : showDeleteUsersType}
		]);
		//创建Grid表格组件
		var cb = new Ext.grid.CheckboxSelectionModel()
		var usersGrid = new Ext.grid.GridPanel({
			applyTo : 'grid-div',
			tbar : toolbar,
			frame:true,
			store: typeStore,
			viewConfig : {
				autoFill : true
			},
			sm : cb,
			columns: [//配置表格列
				new Ext.grid.RowNumberer({
					header : '行号',
					width : 40
				}),//表格行号组件
				cb,
				{header: "编号", width: 80, dataIndex: 'id', sortable: true,hidden:true},
				{header: "姓名", width: 180, dataIndex: 'username', sortable: true},
				{header: "密码", width: 280, dataIndex: 'password', sortable: true}
			],
			 bbar: new Ext.PagingToolbar({
		        pageSize: 15,  
		        store: typeStore,
		        displayInfo: true,
		        displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
		        emptyMsg: "没有记录"
	    	})
	    });
			typeStore.load({params:{start:0, limit:15}});
		//创建新增或修改用户类型信息的form表单
		Ext.QuickTips.init();
		Ext.form.Field.prototype.msgTarget = 'side';//统一指定错误信息提示方式
		var usersForm = new Ext.FormPanel({
			labelSeparator : ":",
			frame:true,
			border:false,
			items : [
				{
					xtype:'textfield',
					width : 200,
					allowBlank : false,
					blankText : '类型名称不能为空',
					name : 'username',
					fieldLabel:'姓名'
				},{
					xtype:'textfield',
					width : 200,
					name : 'password',
					fieldLabel:'密码'
				},{
					xtype:'hidden',
					name : 'id'
				}
			],
			buttons:[
				{
					text : '关闭',
					handler : function(){
						win.hide();
					}
				},{
					text : '提交',
					handler : submitForm
				}
			]
		});
		//创建弹出窗口
		var win = new Ext.Window({
			layout:'fit',
		    width:380,
		    closeAction:'hide',
		    height:200,
			resizable : false,
			shadow : true,
			modal :true,
		    closable:true,
		    bodyStyle:'padding:5 5 5 5',
		    animCollapse:true,
			items:[usersForm]
		});
		//显示新建用户类型窗口
		function showAddUsersType(){
			usersForm.form.reset();
			usersForm.isAdd = true;
			win.setTitle("新增用户信息");
			win.show();
		}
		//显示修改用户类型窗口
		function showModifyUsersType(){
			var usersList = getUsersIdList();
			var num = usersList.length;
			if(num > 1){
				Ext.MessageBox.alert("提示","每次只能修改一条用户信息。")
			}else if(num == 1){
				usersForm.isAdd = false;
				win.setTitle("修改用户信息");
				win.show();
				var usersId = usersList[0];
				loadForm(usersId);
			}
		}
		//显示删除用户对话框
		function showDeleteUsersType(){
			var usersList = getUsersIdList();
			var num = usersList.length;
			if(num > 1){
				Ext.MessageBox.alert("提示","每次只能删除一条用户信息。")
			}else if(num == 1){
				Ext.MessageBox.confirm("提示","您确定要删除所选用户吗?",function(btnId){
					if(btnId == 'yes'){
						var usersId = usersList[0];
						deleteUsers(usersId);
					}
				})
			}
		}
		//删除用户类型
		function deleteUsers(usersId){
			var msgTip = Ext.MessageBox.show({
				title:'提示',
				width : 250,
				msg:'正在删除用户信息请稍后......'
			});
			Ext.Ajax.request({
				url : 'usersext.do?method=deleteUsers',
				params : {usersId : usersId},
				method : 'POST',
				success : function(response,options){
					msgTip.hide();
					var result = Ext.util.JSON.decode(response.responseText);
					if(result.success){
						//服务器端数据成功删除后,同步删除客户端列表中的数据
						var index = typeStore.find('id',usersId);
						if(index != -1){
							var rec = typeStore.getAt(index)
							typeStore.remove(rec);
						}
						Ext.Msg.alert('提示','删除用户信息成功。');
					}else{
						Ext.Msg.alert('提示','该用户已包含'+result.num+'本用户信息不能删除!');
					}
				},
				failure : function(response,options){
					msgTip.hide();
					Ext.Msg.alert('提示','删除用户类型请求失败!');
				}
			});
		}
		//加载表单数据
		function loadForm(usersId){
			usersForm.form.load({
				waitMsg : '正在加载数据请稍后',//提示信息
				waitTitle : '提示',//标题
				url : 'usersext.do?method=getUsersById',//请求的url地址
				params : {usersId:usersId},
				method:'GET',//请求方式
				success:function(form,action){//加载成功的处理函数
					//Ext.Msg.alert('提示','数据加载成功');
				},
				failure:function(form,action){//加载失败的处理函数
					Ext.Msg.alert('提示','数据加载失败');
				}
			});
		}
		//提交表单数据
		function submitForm(){
			//判断当前执行的提交操作,isAdd为true表示执行用户类型新增操作,false表示执行用户类型修改操作
			if(usersForm.isAdd){
				//新增用户信息
				usersForm.form.submit({
					clientValidation:true,//进行客户端验证
					waitMsg : '正在提交数据请稍后',//提示信息
					waitTitle : '提示',//标题
					url : 'usersext.do?method=addUsers',//请求的url地址
					method:'POST',//请求方式
					success:function(form,action){//加载成功的处理函数
						win.hide();
						updateUsersList(action.result.usersId);
						Ext.Msg.alert('提示','新增用户成功');
					},
					failure:function(form,action){//加载失败的处理函数
						Ext.Msg.alert('提示','新增用户失败');
					}
				});
			}else{
				//修改用户信息
				usersForm.form.submit({
					clientValidation:true,//进行客户端验证
					waitMsg : '正在提交数据请稍后',//提示信息
					waitTitle : '提示',//标题
					url : 'usersext.do?method=modifyUsers',//请求的url地址
					method:'POST',//请求方式
					success:function(form,action){//加载成功的处理函数
						win.hide();
						updateUsersList(action.result.UsersId);
						Ext.Msg.alert('提示','修改用户成功');
					},
					failure:function(form,action){//加载失败的处理函数
						Ext.Msg.alert('提示','修改用户失败');
					}
				});
			}
		}
		//明细数据修改后,同步更新用户列表信息
		function updateUsersList(usersId){
			var fields = getFormFieldsObj(usersId);
			var index = typeStore.find('id',fields.id);
			if(index != -1){
				var item = typeStore.getAt(index);
				for(var fieldName in fields){
					item.set(fieldName,fields[fieldName]);
				}
				typeStore.commitChanges();
			}else{
				var rec = new Ext.data.Record(fields);
				typeStore.add(rec);
			}
		}
		//取得表单数据
		function getFormFieldsObj(usersId){
			var fields = usersForm.items;
			var obj = {};
			for(var i = 0 ; i < fields.length ; i++){
				var item = 	fields.itemAt(i);
				var value = item.getValue();
				obj[item.name] = value;
			}
			if(Ext.isEmpty(obj['id'])){
				obj['id'] = usersId;
			}
			return obj;
		}
		//取得所选用户
		function getUsersIdList(){
			var recs = usersGrid.getSelectionModel().getSelections();
			var list = [];
			if(recs.length == 0){
				Ext.MessageBox.alert('提示','请选择要进行操作的用户!');
			}else{
				for(var i = 0 ; i < recs.length ; i++){
					var rec = recs[i];
					list.push(rec.get('id'))
				}
			}
			return list;
		}   
	});
</script>
<body>
<div id='grid-div' style="width:100%; height:100%;"/>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>  
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="<%=basePath%>/pagesExt/js/excel.js"></script>
<title>收入列表</title>
</head>
<script type="text/javascript">
	Ext.onReady(function(){
		//定义数据集对象
		var bookStore = new Ext.data.Store({
			//autoLoad :true,  
			reader: new Ext.data.XmlReader({
				totalRecords: "results",
				record: "Book",
				id: "id"
			},
			Ext.data.Record.create([
				{name: 'id'},
				{name: 'bookName'},
				{name: 'author'},
				{name: 'typeName'},
				{name: 'price'},
				{name: 'brief'}
			])
			),
			proxy : new Ext.data.HttpProxy({
				url : 'bookext.do?method=getBookList'
			})
		})
		//创建工具栏组件
		var toolbar = new Ext.Toolbar([
			{text : '新增收入',iconCls:'add',handler:showAddBook},
			 '-',
			{text : '修改收入',iconCls:'option',handler:showModifyBook},
			 '-',
			{text : '删除收入',iconCls:'remove',handler:showDeleteBooks},
			'-',
			{text : '总收入',iconCls:'tot',handler : showTotalPay},
			'-', 
			new Ext.Toolbar.TextItem('按时间查询:'), 
			{  
				xtype:'datefield',
				width : 150,
				allowBlank : false,
				blankText : '不能为空',
				id : 'times',
				name : 'times',
				emptyText:'请选择时间', 
				format:'Y-m-d'
             },
			{iconCls:'find',handler:onItemCheck },
			'-',
			{text : '导出数据',iconCls:'down',handler:downExcel}
		]);  
		
		
		//创建Grid表格组件
		var cb = new Ext.grid.CheckboxSelectionModel()
		var bookGrid = new Ext.grid.GridPanel({
			applyTo : 'grid-div',
			frame:true,
			tbar : toolbar,
			store: bookStore,
			stripeRows : true,
			autoScroll : true, 
			viewConfig : {
				autoFill : true
			},
			sm : cb,
			columns: [//配置表格列
				new Ext.grid.RowNumberer({
					header : '行号',
					width : 40
				}),//表格行号组件
				cb,
				{header: "收入编号", width: 1, dataIndex: 'id', sortable: true,hidden:true},
				{header: "收入名称", width: 80, dataIndex: 'bookName', sortable: true},
				{header: "作者", width: 80, dataIndex: 'author', sortable: true},
				{header: "类型", width: 80, dataIndex: 'typeName', sortable: true},
				{header: "金额", width: 80, dataIndex: 'price', sortable: true},
				{header: "简介", width: 80, dataIndex: 'brief', sortable: true}
			],
			 bbar: new Ext.PagingToolbar({
		        pageSize: 15,    
		        store: bookStore,
		        displayInfo: true,
		        displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
		        emptyMsg: "没有记录"
	    	})

		});
		bookStore.load({params:{start:0, limit:15}});
		
		//按时间查询方法
         function onItemCheck(){
       		  var dd=Ext.get('times').getValue();  
       		  if(dd=='请选择时间'){
       		      dd = "";
       		  }
              bookStore.reload({params:{start:0,limit:15,dd:dd}}); 
       };
		//创建新增或修改收入信息的form表单
		Ext.QuickTips.init();
		Ext.form.Field.prototype.msgTarget = 'side';//统一指定错误信息提示方式
		var bookForm = new Ext.FormPanel({
			labelSeparator : ":",
			frame:true,
			border:false,
			items : [
				{
					xtype:'textfield',
					width : 200,
					allowBlank : false,
					blankText : '收入名称不能为空',
					name : 'bookName',
					fieldLabel:'收入名称'
				},{
					xtype:'textfield',
					width : 200,
					allowBlank : false,
					blankText : '收入作者不能为空',
					name : 'author',
					fieldLabel:'作者'
				},{
					xtype:'combo',
					width : 200,
					allowBlank : false,
					blankText : '必须选择收入类型',
					hiddenName : 'bookTypeId',
					name : 'typeName',
					store : new Ext.data.Store({
						autoLoad :true,
						reader: new Ext.data.XmlReader({
							totalRecords: "results",
							record: "BookType",
							id: "id"
						},
						Ext.data.Record.create([
							{name: 'id'},
							{name: 'title'},
							{name: 'detail'}
						])
						),
						proxy : new Ext.data.HttpProxy({
							url : 'bookext.do?method=getBookTypeList'
						})
					}),//设置数据源
					allQuery:'allbook',//查询全部信息的查询字符串
					triggerAction: 'all',//单击触发按钮显示全部数据
					editable : false,//禁止编辑
					loadingText : '正在加载收入类型信息',//加载数据时显示的提示信息
					displayField:'title',//定义要显示的字段
					valueField : 'id',
					emptyText :'请选择收入类型',
					mode: 'remote',//远程模式
					fieldLabel:'类型'
				},{
					xtype:'textfield',
					width : 200,
					name : 'price',
					fieldLabel:'金额'
				},{
					xtype:'textarea',
					width : 200,
					name : 'brief',
					fieldLabel:'简介'
				},{
					xtype:'hidden',
					name : 'id'
				}
			],
			buttons:[
				{
					text : '关闭',
					handler : function(){
						win.hide();
					}
				},{
					text : '提交',
					handler : submitForm
				}
			]
		});
		//创建弹出窗口
		var win = new Ext.Window({
			layout:'fit',
		    width:380,
		    closeAction:'hide',
		    height:280,
			resizable : false,
			shadow : true,
			modal :true,
		    closable:true,
		    bodyStyle:'padding:5 5 5 5',
		    animCollapse:true,
			items:[bookForm]
		});
		//显示新建收入窗口
		function showAddBook(){
			bookForm.form.reset();
			bookForm.isAdd = true;
			win.setTitle("新增收入信息");
			win.show();
		}
		//显示修改收入窗口
		function showModifyBook(){
			var bookList = getBookIdList();
			var num = bookList.length;
			if(num > 1){
				Ext.MessageBox.alert("提示","每次只能修改一条收入信息。")
			}else if(num == 1){
				bookForm.form.reset();
				bookForm.isAdd = false;
				win.setTitle("修改收入信息");
				win.show();
				var bookId = bookList[0];
				loadForm(bookId);
			}
		}
		//显示删除收入对话框
		function showDeleteBooks(){
			var bookList = getBookIdList();
			var num = bookList.length;
			if(num == 0){
				return;
			}
			Ext.MessageBox.confirm("提示","您确定要删除所选收入吗?",function(btnId){
				if(btnId == 'yes'){
					deleteBooks(bookList);
				}
			})
		}
		//删除收入
		function deleteBooks(bookList){
			var bookIds = bookList.join('-');
			var msgTip = Ext.MessageBox.show({
				title:'提示',
				width : 250,
				msg:'正在删除收入信息请稍后......'
			});
			Ext.Ajax.request({
				url : 'bookext.do?method=deleteBooks',
				params : {bookIds : bookIds},
				method : 'POST',
				success : function(response,options){
					msgTip.hide();
					var result = Ext.util.JSON.decode(response.responseText);
					if(result.success){
						//服务器端数据成功删除后,同步删除客户端列表中的数据
						for(var i = 0 ; i < bookList.length ; i++){
							var index = bookStore.find('id',bookList[i]);
							if(index != -1){
								var rec = bookStore.getAt(index)
								bookStore.remove(rec);
							}
						}
						Ext.Msg.alert('提示','删除收入信息成功。');
					}else{
						Ext.Msg.alert('提示','删除收入信息失败!');
					}
				},
				failure : function(response,options){
					msgTip.hide();
					Ext.Msg.alert('提示','删除收入信息请求失败!');
				}
			});
		}
		//加载表单数据
		function loadForm(bookId){
			bookForm.form.load({
			   
				waitMsg : '正在加载数据请稍后',//提示信息
				waitTitle : '提示',//标题
				url : 'bookext.do?method=getBookById',//请求的url地址
				params : {bookId:bookId},
				method:'GET',//请求方式
				success:function(form,action){//加载成功的处理函数
					//Ext.Msg.alert('提示','数据加载成功');
				},
				failure:function(form,action){//加载失败的处理函数
					Ext.Msg.alert('提示','数据加载失败');
				}
			});
		}
		//提交表单数据
		function submitForm(){
			//判断当前执行的提交操作,isAdd为true表示执行收入新增操作,false表示执行收入修改操作
			if(bookForm.isAdd){
				//新增收入信息
				bookForm.form.submit({
					clientValidation:true,//进行客户端验证
					waitMsg : '正在提交数据请稍后',//提示信息
					waitTitle : '提示',//标题
					url : 'bookext.do?method=addBook',//请求的url地址
					method:'POST',//请求方式
					success:function(form,action){//加载成功的处理函数
						win.hide();
						updateBookList(action.result.bookId);
						Ext.Msg.alert('提示','新增收入成功');
					},
					failure:function(form,action){//加载失败的处理函数
						Ext.Msg.alert('提示','新增收入失败');
					}
				});
			}else{
				//修改收入信息
				bookForm.form.submit({
					clientValidation:true,//进行客户端验证
					waitMsg : '正在提交数据请稍后',//提示信息
					waitTitle : '提示',//标题
					url : 'bookext.do?method=modifyBook',//请求的url地址
					method:'POST',//请求方式
					success:function(form,action){//加载成功的处理函数
						win.hide();
						updateBookList(action.result.bookId);
						Ext.Msg.alert('提示','修改收入成功');
					},
					failure:function(form,action){//加载失败的处理函数
						Ext.Msg.alert('提示','修改收入失败');
					}
				});
			}
		}
		//明细数据修改后,同步更新收入列表信息
		function updateBookList(bookId){
			var fields = getFormFieldsObj(bookId);
			var index = bookStore.find('id',fields.id);
			if(index != -1){
				var item = bookStore.getAt(index);
				for(var fieldName in fields){
					item.set(fieldName,fields[fieldName]);
				}
				bookStore.commitChanges();
			}else{
				var rec = new Ext.data.Record(fields);
				bookStore.add(rec);
			}
		}
		//取得表单数据
		function getFormFieldsObj(bookId){
			var fields = bookForm.items;
			var obj = {};
			for(var i = 0 ; i < fields.length ; i++){
				var item = 	fields.itemAt(i);
				var value = item.getValue();
				if(item.getXType() == 'combo'){
					var index = item.store.find('id',value);
					if(index != -1){
						var selItem = item.store.getAt(index);
					}
					value = selItem.get('title');
				}
				obj[item.name] = value;
			}
			if(Ext.isEmpty(obj['id'])){
				obj['id'] = bookId;
			}
			return obj;
		}
		//取得所选收入
		function getBookIdList(){
			var recs = bookGrid.getSelectionModel().getSelections();
			var list = [];
			if(recs.length == 0){
				Ext.MessageBox.alert('提示','请选择要进行操作的收入!');
			}else{
				for(var i = 0 ; i < recs.length ; i++){
					var rec = recs[i];
					list.push(rec.get('id'))
				}
			}
			return list;
		};
		
		//查看总支出
		function showTotalPay(){
			winP.setTitle("您的总支出信息");
			winP.show();
		};
		//导出excel
		function downExcel(){ 
		   Ext.Ajax.request({
				url : 'analysis.do?method=crateInExcel',
				params : {type : 'b'},
				method : 'POST',
				success : function(response,options){
				   	Ext.Msg.alert('成功提示','导出数据成功!保存在您的C盘下的文件名为: 收入数据.xls。');
					 
				},
				failure : function(response,options){
					Ext.Msg.alert('失败提示','导出数据失败!');
				}
			});
        };

		
		//弹出总收入信息
		var sumIncome = document.getElementById("sumIncome").value; 
		var sumIncomeY = document.getElementById("sumIncomeY").value; 
		var winIn = new Ext.Window({
			layout:'fit',
		    width:370,
		    closeAction:'hide',
		    height:280,
			resizable : false,
			shadow : true,
			modal :true,
		    closable:true,
		    bodyStyle:'padding:5 5 5 5',
		    animCollapse:true,
			items:{  
					title:"总收入",  
					collapsible:true,
					html : '<br><center><font size = 6>本月总收入为:</font><font size = 5 color= red>'+sumIncome+'元</font></center><br/><center><font size = 6>本年总收入为:</font><font size = 5 color= red>'+sumIncomeY+'元</font></center><br/>'
				  }
		});

		//查看总收入
		function showTotalPay(){
			winIn.setTitle("您的总收入信息");
			winIn.show();
		}

	});
</script>
<body>
<div id='grid-div' style="width:100%; height:100%;"/>
<input type="hidden" name="sumIncome" id="sumIncome" value="${sumIncome }"/>
<input type="hidden" name="sumIncomeY" id="sumIncomeY" value="${sumIncomeY }"/>
</body>
</html>

  

分享到:
评论

相关推荐

    EXT 增删改查的一个例子

    在"EXT 增删改查的一个例子"中,我们主要关注的是EXT在数据管理和用户交互方面的应用。增删改查(CRUD)是任何数据驱动应用的基础操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。EXT提供...

    简单的EXT 增删改查

    简单的EXT 增删改查

    Ext增删改查和excel导出

    在"Ext增删改查和excel导出"这个主题中,我们将探讨如何在ExtJS应用中实现数据的CRUD操作(创建、读取、更新、删除)以及如何将数据导出为Excel格式。 1. 创建(Create) 在ExtJS中,可以使用GridPanel或FormPanel...

    基于Struts的Ext增删改查应用范例

    **基于Struts的Ext增删改查应用范例详解** 在Web开发中,Struts框架与ExtJS库的结合常用于构建高效的用户界面和后台数据交互。本应用范例是针对初学者的一个宝贵资源,它提供了清晰的注释和全面的功能,使开发者...

    ext增删改查

    ### 关于Ext.js中的增删改查操作 在前端开发领域,Ext JS 是一个非常流行的JavaScript框架,它为创建复杂的Web应用程序提供了丰富的组件库。本文将深入探讨如何使用Ext JS来实现基本的数据增删改查(CRUD)操作,...

    SSH+DWR+EXT 增删改查

    综上所述,"SSH+DWR+EXT 增删改查"这个主题涉及了如何使用这些技术进行后台数据的管理。开发者可以利用SSH框架处理业务逻辑和数据持久化,通过DWR实现实时的前后端交互,再结合EXTJS创建用户友好的界面,完成网页上...

    Ext Demo grid的增删改查例子

    接下来 在mysql里建立 数据库位ext的库 再去项目中 src/META-INF/persistence.xml的配置文件里吧&lt;!-- &lt;property name="hibernate.hbm2ddl.auto" value="update" /&gt; --&gt;这句话的注释去掉 好了 部署项目到tomcat上 ...

    Ext+ssh 实现增删改查小例子

    这个"Ext+SSH"实现的增删改查例子,其核心流程可能如下: 1. **用户界面**:使用ExtJS创建一个表格,显示从服务器获取的数据。表格可能包含编辑和删除按钮,用户可以通过这些按钮触发操作。 2. **Ajax通信**:当...

    ext与数据交互增删改查大全

    "ext增删改查.rar" 文件可能包含了EXTJS 进行数据操作的具体代码示例,包括Model、Store、Proxy 的配置以及如何触发增删改查操作的代码片段。解压并研究这些文件可以帮助理解EXTJS 与MySQL 数据库的交互过程。 8. ...

    ext增删查改demo

    在这个"ext增删查改demo"中,我们可以看到是EXTJS在数据管理方面的应用,涉及到的主要知识点包括EXTJS的基础组件、数据模型、数据存储以及数据绑定。 1. EXTJS版本:此示例提及了EXTJS 3.1和2.2两个版本。EXTJS 3.x...

    Struts的Ext增删改查应用范例

    在本示例中,我们将探讨如何在Struts中实现基本的增删改查(CRUD)操作。 1. **MVC模式**: MVC(Model-View-Controller)模式是Struts的核心架构。Model代表业务逻辑,View负责显示数据,Controller处理用户请求...

    Ext+2.0+Grid的增删改查.txt

    Ext+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txt

    ext+SSH增删改查

    EXT SSH增删改查是关于Java Web开发中的一个主题,主要涉及EXT JavaScript库与Spring、Struts和Hibernate(SSH)三大框架的集成,用于构建数据管理的前端界面和后端处理逻辑。EXT是一个强大的JavaScript UI库,提供...

    Ext左树有表格 增删改查

    在"Ext左树有表格 增删改查"这个主题中,我们主要关注的是ExtJS如何实现左侧树形结构与右侧表格的交互,以及在这样的布局中进行数据的增、删、改、查操作。 首先,ExtJS中的树形组件(TreePanel)可以用来展示层级...

    ext 学习资料 网格增删改查 炫酷的效果

    ext 学习资料 网格增删改查 炫酷的效果ext 学习资料 网格增删改查 炫酷的效果

    extJs 简单的增删改查

    在“简单的增删改查”这个主题中,我们将探讨如何使用ExtJS实现数据管理的基本操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 首先,我们需要了解ExtJS的核心概念,如组件(Components)...

    ext简单的增删改查

    在这个"EXT简单的增删改查"项目中,开发者利用EXTJS与SQLServer数据库相结合,实现了基本的数据管理功能,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 1. EXTJS的基本概念: - 组件...

    ext做增删改查

    在这个场景中,我们关注的是使用MySQL数据库,Java编程语言,以及MyEclipse IDE来实现前端JSP页面与后端Java服务的交互,完成“增删改查”(CRUD)操作。CRUD代表创建(Create)、读取(Retrieve)、更新(Update)和删除...

    EXTJS4+STRUTS2+JAVA增删改查

    在这个"EXTJS4+STRUTS2+JAVA增删改查"的例子中,我们将深入探讨这三个技术如何协同工作,实现数据的动态管理。 EXTJS4是一个强大的JavaScript库,主要用于创建桌面级的Web应用程序。它提供了丰富的组件库,如表格、...

Global site tag (gtag.js) - Google Analytics