javaWeb核心技術第十四篇之easyui

来源:https://www.cnblogs.com/haizai/archive/2019/09/01/11442990.html
-Advertisement-
Play Games

網站是分為網站的前臺和網站的後臺. 前臺--給用戶看的 例如:商城 後臺--給管理員看的 例如:商城後臺 目的:用來添加維護數據 BootStrap:jsp 頁面顯示,效果好,美觀,適合作為用戶界面. EasyUI : jsp頁面,快速開發,格式統一,美觀效果一般. 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();
        }
    
    }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 重溫下Android和Fragment生命周期,理解生命周期方法的作用,什麼時候調用,可以做一些什麼操作。 1、Android生命周期 1.1 生命周期圖 1.2 生命周期函數說明 onCreate :Activity正在創建,生命周期的第一個方法,需要setContentView載入layout。 ...
  • 鍵值監聽,就是可以監聽對象某個屬性值的變化; 首先,在工程中,新建一個Person的類 在viewController中引入頭文件“Person”,開始測試KVO的使用 運行程式,得出來的值如下: ...
  • ### MVP簡介 >MVP 全稱:Model-View-Presenter ;MVP 是從經典的模式MVC演變而來,它們的基本思想有相通的[地方](https://baike.baidu.com/item/%E5%9C%B0%E6%96%B9/2262175):Controller/Present ...
  • indexOf,lastIndexOf,find,findIndex,every,some,forEach,map,filter,reduce,reduceRight ...
  • 首先放置一連的image 然後設置樣式,主要是圖片的大小 最後就是實現行為 一個簡單的小案例便完成了。效果圖如下: ps:div可以多給點,以防看不出效果 ...
  • Vue起飛前的準備 一、什麼是ECMAScript,以及es6的誕生? 1997年 ECMAScript 1.0 誕生 1999年12月 ECMAScript 3.0誕生,它 是一個巨大的成功,在業界得到了廣泛的支持,它奠定了JS的基本語法,被其後版本完全繼承。直到今天,我們一開始學習JS,其實就是 ...
  • 溫習一下js中的迭代方法。 <script type="text/javascript"> var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]; //所有項為false,則為false //否則直到遍歷到第一個為true的值,返回true //類似於數學里的‘或’ conso ...
  • 前言 上傳文件在開發中是很常見的操作,今天我選擇使用koa-multer中間件來實現這一功能,除了上傳文件外,我還會對文件上傳進行限制,以及發生上傳錯誤時的處理。 由於原來的 koa-multer 已經停止維護,我們要使用最新的 @koa/multer 。這個模塊是 koa-multer 的一個分支 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...