• 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 标题',200,height:400"></div>
                        
                        js例子:
                        <div id="myDiv"></div>
                        <script>
                            //如果使用js渲染,语法 : 对象.组件名称({key:value,key:value.....});
                            $("#myDiv").window({
                                title:'这是新的标题',
                                400,
                                height:400
                            });
                        </script>    
        Easy--属性--事件--方法:
            easyui的属性 : 事件,方法
                属性 : 组件自身特点,事件和属性可以写在一起,格式:key:value,key:value....
                事件 : (被动)完成某件事情后触发的动作.
                    $(对象).组件名称({
                        属性:属性值,
                        属性:属性值,
                        事件:函数
                    })
                
                方法:(主动)主动完成某件事件.
                语法:
                    $(对象).组件名称(方法名称,方法的参数)
                    
                <div class="easyui-dialog" data-options="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({
                            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',100">编码</th>
                        <th data-options="field:'name',100">名称</th>
                        <th data-options="field:'age',100,align:'right'">价格</th>
                        <th data-options="field:'pimage',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',100},    
                    {field:'name',title:'Name',100},    
                    {field:'age',title:'age',100,align:'right'}, 
                    {field:'pimage',title:'pimage',100,align:'right',
                        formatter:function(value , rows , index){
                            return  "<img src='"+value+"' style='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();
            }
        
        }
  • 相关阅读:
    destoon去除编辑器替换图片删除原图功能,删除信息删除相关图片功能
    destoon 支付异步接口文件 notify.php 调试方式
    destoon 自定义session丢失
    MySQL中文转换成拼音的函数
    destoon ip接口失效修改 修改后偶尔会加载很慢
    destoon 多表联合查询时出现解析错误,parse_str函数解析错误
    destoon添加修改会员信息时,信息丢失
    destoon 屏蔽会员组,让个人,游客不显示
    jQuery中attr()方法用法实例
    filter 简介
  • 原文地址:https://www.cnblogs.com/haizai/p/11442990.html
Copyright © 2020-2023  润新知