javaWeb核心技术第十四篇之easyui

网站是分为网站的前台和网站的后台.
        前台--给用户看的   例如:商城
        后台--给管理员看的  例如:商城后台  目的:用来添加维护数据

    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();
        }

    }

原文地址:https://www.cnblogs.com/haizai/p/11442990.html

时间: 2024-11-06 14:35:51

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

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

分页:limit ?,? 参数1 : startIndex 开始索引. 参数2 : pageSize 每页显示的个数 n 表示第几页 给定一个特殊的单词 pageNumber select * from product; 第一页显示五条数据: select * from product LIMIT 0 , 5; 第二页显示五条数据 select * from product LIMIT 5 , 5; 第三页显示五条数据 select * from product LIMIT 10 , 5; 第N

【第十四篇】easyui datagrid导出excel

<a class="btn btn-app" onclick="exportExcel()"><i class="fa fa-edit"></i>导出Excel</a> 贴下面的代码之前,我想说一下 我的数据是主外键关系,有多张表关联,所以在做数据的时候,发现很多问题,读取的时候,它会自动读取所有的数据. 当然这不能满足我导出之后的要求,我只需要导出我要的字段即可,所以我进行了数据处理. //导出E

第十四篇 现象

第十四篇  现象 "现象"的产生是由宇宙当中各种因素交汇的结果.现象是万物在宇宙中的展现,它可以被人为创造,也可以由宇宙规律自行产生.现象能帮助人类逐步地了解宇宙的本质,也能帮助人类更好地了解自己. 当一个生命对宇宙有足够高度的认识之后就会留意所有的现象,并从这些现象当中去探索自身以及宇宙的奥秘.可以说,生命的成长过程就是不断地分析与探索各种现象,从而总结经验,让自身不断提高探索宇宙奥秘能力的一个历练过程. 随着对各种现象的不断分析与探索,人类会越来越深刻地认识到现象背后的本质,而不会

第十四篇 Integration Services:项目转换

本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业智能工具(SSDT-BI)或Visual Studio 2012将我们的第一个SSIS项目转换为SSIS 2012.为什么你想升级我们的SSIS项目到2012?你可能想使用SSIS 2012中的新特性.你可能还希望利用SSIS 2012目录.要使用目录,你的项目必须遵循项目部署模型,我们也将在这篇文

NHibernate 存储过程 第十四篇

NHibernate 存储过程 第十四篇 NHibernate也是能够操作存储过程的,不过第一次配置可能会碰到很多错误. 一.删除 首先,我们新建一个存储过程如下: CREATE PROC DeletePerson @Id int AS DELETE FROM Person WHERE PersonId = @Id; 修改映射文件,添加删除对象的存储过程: <?xml version="1.0" encoding="utf-8" ?> <hiber

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

原文:解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译) 解剖SQLSERVER 第十四篇    Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究vardecimals 是怎麽存储在磁盘上的. 作为一般的介绍vardecimals 是怎样的,什么时候应该使用,怎样使用,参考这篇文章 vardecimal 存储格式启用了吗? 首先,我们需要看一下vardecim

Egret入门学习日记 --- 第二十四篇(书中 9.12~9.15 节 内容)

第二十四篇(书中 9.12~9.15 节 内容) 开始 9.12节 内容. 重点: 1.TextInput的使用,以及如何设置加密属性. 操作: 1.TextInput的使用,以及如何设置加密属性. 创建exml文件,拖入组件,设置好id. 这是显示密码星号处理的属性. 创建绑定类. 实例化,并运行. 但是焦点在密码输入框时,密码是显示的. 暂时不知道怎么设置 “焦点在密码框上时,还是显示为 * 号” 的方法. 至此,9.12节 内容结束. 开始 9.13节 . 这个,和TextInput的使用

Egret入门学习日记 --- 第六十四篇(书中 19.4 节 内容)

第六十四篇(书中 19.4 节 内容) 昨天的问题,是 images 库自己本身的问题. 我单独使用都报错. 这是main.js文件代码: let images = require("images"); console.log(images); 这是cmd运行命令历史: Microsoft Windows [版本 10.0.16299.15] (c) 2017 Microsoft Corporation.保留所有权利. C:\Users\Administrator\Desktop\a&

javaWeb核心技术第十篇之Filter

Web中有三大组件(需要配置web.xml) servlet:服务器端的小程序. Filter(过滤器):运行在服务器,对请求的资源进行过滤,对响应进行包装. 经典案例: 自动登录,网站全局编码,非法文字过滤... Filter编写流程: 1.创建一个类,实现一个javax.servlet.Filter接口. 2.配置web.xml 配置解释如下: <!-- <filter>通知tomcat需要加载过滤器 <filter-name>给filter命名,名称任意,web.xml