网站是分为网站的前台和网站的后台.
前台--给用户看的 例如:商城
后台--给管理员看的 例如:商城后台 目的:用来添加维护数据 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();
} }

javaWeb核心技术第十四篇之easyui的更多相关文章

  1. javaWeb核心技术第十二篇之分页和条件

    分页:limit ?,? 参数1 : startIndex 开始索引. 参数2 : pageSize 每页显示的个数 n 表示第几页 给定一个特殊的单词 pageNumber select * fro ...

  2. 【第十四篇】easyui datagrid导出excel

    <a class="btn btn-app" onclick="exportExcel()"><i class="fa fa-edi ...

  3. 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)

    解剖SQLSERVER 第十四篇    Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...

  4. 第十四篇 Integration Services:项目转换

    本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...

  5. Python之路【第十四篇】:AngularJS --暂无内容-待更新

    Python之路[第十四篇]:AngularJS --暂无内容-待更新

  6. 【译】第十四篇 Integration Services:项目转换

    本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...

  7. 跟我学SpringCloud | 第十四篇:Spring Cloud Gateway高级应用

    SpringCloud系列教程 | 第十四篇:Spring Cloud Gateway高级应用 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 ...

  8. SpringBoot第二十四篇:应用监控之Admin

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11457867.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   前一章(S ...

  9. Egret入门学习日记 --- 第十四篇(书中 5.4~5.6节 内容)

    第十四篇(书中 5.4~5.6节 内容) 书中内容: 总结 5.4节 内容重点: 1.如何编写自定义组件? 跟着做: 重点1:如何编写自定义组件? 文中提到了重要的两点. 好,我们来试试看. 第一步, ...

随机推荐

  1. HttpRunner学习7--引用CSV文件数据

    前言 在之前的文章中,我们已经学习了 parameters 参数化,是在测试脚本中直接指定参数列表.这种方法简单易用,但如果我们的参数列表数据比较多,这种方法可能就不太适合了. 当数据量比较大的时候, ...

  2. bsoj5988 [Achen模拟赛]期望 题解

    bsoj5988 Description [题目背景] NOI2018 已经过去了许久,2019 届的 BSOIer 们退役的退役,颓废的颓废,计数能力大不如前.曾经的数数之王 xxyj 坦言:&qu ...

  3. 使用GDAL/GEOS求面特征的并集

    存在这样一个示例的矢量文件,包含了两个重叠的面特征: 一个很常见的需求是求取这个矢量中所有面元素的并集,通过GDAL/GEOS很容易实现这个功能,具体代码如下: #include <iostre ...

  4. Appium(七):Appium API(一) 应用操作

    1. 应用操作 本章所罗列的方法主要针对应用的操作,如应用的安装.卸载.关闭.启动等. 把前面的启动代码放在这里,后面只展示不同的部分. # coding:utf-8 from appium impo ...

  5. linux源码安装mysql,shell编程学习,ubuntu

    一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...

  6. Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables

    今天在虚拟机的Linux系统(centos7)里安装Redis,准备学习一下布隆过滤器呢,安装完后使用Windows本机访问不了虚拟机里的Redis,telnet不通能够ping通.于是就去看防火墙, ...

  7. python高阶函数——返回函数(闭包)

    首先,来看一个一般意义的求和: >>> def cal_sum(*args): ... sum = 0 ... for i in args: ... sum = sum + i .. ...

  8. C# -- 使用ODBC连接数据库

    C# -- 使用ODBC连接数据库 public class ODBCHelper { public static string conString1 = "Dsn=sqlServerDsn ...

  9. JVM G1垃圾回收算法简要介绍

    JVM G1垃圾回收算法简要介绍 G1的特点 能够像CMS垃圾回收算法一样并发操作应用线程(潜台词:多核) 无需太长时间即可压缩空闲内存空间(潜台词:不会引起太多的GC停顿时间) 尽可能地让GC时长可 ...

  10. c#使用CefSharp开发winform——环境搭建

    因为nuget在线下载有时候很慢,所以下载nuget包,进行本地安装 登陆nuget官网https://www.nuget.org/下载相关资源 选择对应版本进行下载,同时需要下载相关依赖的包 ​ 最 ...