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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...