javaWeb核心技术第十四篇之easyui

  • 2019 年 10 月 5 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/zhao1299002788/article/details/100185402

网站是分为网站的前台和网站的后台.  		前台--给用户看的   例如:商城  		后台--给管理员看的  例如:商城后台  目的:用来添加维护数据    	BootStrap:jsp 页面显示,效果好,美观,适合作为用户界面.  	EasyUI : jsp页面,快速开发,格式统一,美观效果一般.    	EasyUI里面有很多组件(功能模块):有自己的特使,但编写简单,只需固定html代码结构.    	EasyUI环境搭建:  		1.导入css , 需要2个css  		2.导入jquery,需要2个js  			<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/easyui.css">  			<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/icon.css">  			<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/demo.css">  			<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>  			<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>    	EasyUI的定义方式:  		easyui规定:我们只需要提供简单html代码结构,就可以生成特殊的效果.  			easyui的定义方式:  				1.html代码结构.  					1.1:需要有class="easyui-*"  *表示组件的名称.  					1.2:easyui提供另外一个属性:data-options:里面可以写easyui提供的属性.  						data-options格式:json格式:key:value,key:value......    				2.js渲染.  					2.1:语法 : 对象.组件名称();  					2.2:语法 : 对象.组件名称({key:value,key:value.....});    				例如:  					html例子:  					<div class="easyui-window" data-options="title:'this is 标题',width:200,height:400"></div>    					js例子:  					<div id="myDiv"></div>  					<script>  						//如果使用js渲染,语法 : 对象.组件名称({key:value,key:value.....});  						$("#myDiv").window({  							title:'这是新的标题',  							width:400,  							height:400  						});  					</script>  	Easy--属性--事件--方法:  		easyui的属性 : 事件,方法  			属性 : 组件自身特点,事件和属性可以写在一起,格式:key:value,key:value....  			事件 : (被动)完成某件事情后触发的动作.  				$(对象).组件名称({  					属性:属性值,  					属性:属性值,  					事件:函数  				})    			方法:(主动)主动完成某件事件.  			语法:  				$(对象).组件名称(方法名称,方法的参数)    			<div class="easyui-dialog" data-options="width:200,height:200",onBeforeClose:function(){  					alert('窗口即将关闭');  			}"></div>    			例如:  				<div id="myDiv2"></div>  				<input type="button" value="关闭窗口" onclick="closeDialog()">  				<input type="button" value="打开窗口" onclick="openDialog()">  				//事件  				<script type="text/javascript">  					$("#myDiv2").dialog({  						width:200,  						height:200,  						onBeforeClose:function(){  							alert('窗口即将关闭')  						}  					});    				function closeDialog() {  					//方法设置的标准语法 : $(对象).组件名称(方法名称[,方法的值])  					$("#myDiv2").dialog("close");    				}  				function openDiaLog() {  					$("#myDiv2").dialog("open");  				}  		</script>    	表单:  		默认情况下,表单是传统表单,传统表单同步,easyui的表单是异步的.  		<script>  			$("#ff").from({  				url:"${pageContext.request.contextPath}/DemoServlet",//等效action属性,表单提交的路径.  				onSubmit : function() {  					//在此处可以做效验,表单提交前效验.  					//alert(1);  					//return false;  				},  				success:function(data) {  					//回调函数,此处是没有判断状态码为200情况,以后是需要判断data值.  					alert(data)  				}  			});  		</script>  	Tabs:选项卡  		<script>  			function addTabs(){  				var flag = $("#tt").tabs("exists","工资条");    				if(flag){  					//如果面板已经存在,选中该面板  					$("#tt").tabs("select","工资条");  				}else{  					//如果面板不存在,添加面板  					$("#tt").tabs("add",{  						title : "工资条",  //标题  						content : "Tab Body",  //内容  						closable : true  //是否可以关闭    					});  				}    			}  		</script>    	下拉框:  		<input id="cc" name="dept" value="请选择">  			<script>  				$("#cc").combobox({  					//可以加载远程事件,支持json   easyui都支持json  					url:"combobox_data.json",  					valueField : "id", //对应value值,需要将json的key放在此处,  // <option value="">文本</option>  					textFiedld : "name"  //将要显示的文本的key放在此处    				});  			</script>    	Datagrid:数据表单  		url : 加载远程的数据,支持json  			表格中的field的字段名称,必须和json的一致,如果一致,表单将自动填充json数据.  		<table class="easyui-datagrid" data-options="url:'datagrid_data.json',fit:true">  			<thead>  				<tr>  					<th data-options="field:'id',width:100">编码</th>  					<th data-options="field:'name',width:100">名称</th>  					<th data-options="field:'age',width:100,align:'right'">价格</th>  					<th data-options="field:'pimage',width:100,align:'right',formatter:function( value , rows , index){ return '<img src='+value + '>';}">图片</th>  				</tr>  			</thead>  		</table>    	<table id="dg"></table>  		value : 表示当前json的值  		rows : 表示当前行的对象  		index : 表示当前行的索引  	<script>  		$('#dg').datagrid({  		    url:'datagrid_data.json', //url : 加载远程的数据 支持json  		    columns:[[  		        {field:'id',title:'id',width:100},  		        {field:'name',title:'Name',width:100},  		        {field:'age',title:'age',width:100,align:'right'},  		        {field:'pimage',title:'pimage',width:100,align:'right',  		        	formatter:function(value , rows , index){  		        		return  "<img src='"+value+"' style='width:40px'>";  		       		}  		        }  		    ]],  		    fit:true ,//表格自动填充  		    fitColumns:true, //列自动填充  		    autoRowHeight:true,//高度填充  		    toolbar:[{  				iconCls: 'icon-edit',  				handler: function(){alert('编辑按钮')}  			},'-',{  				iconCls: 'icon-help',  				handler: function(){alert('帮助按钮')}  			}],  			singleSelect:true, //只能选择一个  			pagination:true,//页面的底部加上分页条  			pageNumber:1, //默认打开第一页  			pageSize:5,  			pageList:[5,10,15,20,25,30]  		});  	</script>    	后台代码:  		接收的分页参数:  		响应回去的数据:    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  		try {  			//问题1: 页面需要传入 pageSize 和 pageNumber  			//问题2: 响应数据 是什么? 页面需要什么数据来进行分页    			//0.编码  			request.setCharacterEncoding("utf-8");  			response.setHeader("content-type", "text/html;charset=utf-8");  			//1.获得数据  			String pageNumberStr = request.getParameter("page");  			String pageSizeStr = request.getParameter("rows");    			int pageNumber = Integer.valueOf(pageNumberStr);  			int pageSize = Integer.valueOf(pageSizeStr);    			//int pageNumber= 1;  			//int pageSize = 5;    			//2.处理数据  			ProductService service = new ProductService();  			//List<Product> pList = service.findAll();  			//如果响应回去的只是list 不会进行分页  			//List<Product> pList = service.findByPage( pageNumber , pageSize);  			EasyUIPageBean<Product> easyUIPageBean = service.findByEasyUIPage( pageNumber , pageSize);    			//需要响应的数据{total:28 , "rows" : [ {} , {} ,{} ]}   ==>> 可以使用map 也可以封装对象  			//但目前是           [{key:value,key:value},{key:value,key:value}..]      			//3.响应  			Gson gson = new Gson();  			String json = gson.toJson(easyUIPageBean);  			System.out.println(json);  			response.getWriter().print(json);  		} catch (Exception e) {  			e.printStackTrace();  		}    	}
Exit mobile version