zoukankan      html  css  js  c++  java
  • Easyui表单之下拉列表的三级联动

    一、实现三级联动需要连接数据库

    二、需要JSON数据的解析

    三、需要Servlet类与界面相对应值的传递

    1. 界面层需要的代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <!-- 1 JQuery的js包 -->
    <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
    
    <!-- 2 css资源 -->
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">
    
    <!-- 3 图标资源 -->
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">
    
    <!-- 4 easyui的js包 -->
    <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
    
    <!-- 5 本地语言  -->
    <script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>
    </head>
    <body>
    这是修改员工的页面
     
    <input class="easyui-combobox"data-options="url:'json/combo.json',
    valueField:'id',textField:'text',
    editable:false">
    
    <br><br>
    省:<input id="sheng" class="easyui-combobox" style="100px"
    data-options="{
    url:'RegionServlet?parentid=0',
    valueField:'regionID',
    textField:'regionName',
    onSelect:function(region)
    {
        //alert('选择了省id='+region.regionID);
        $('#shi').combobox('clear');// 清除原有项目
        $('#quxian').combobox('clear');// 清除原有显示项目
        // 重新加载
        $('#shi').combobox('reload','RegionServlet?parentid='+region.regionID);
        $('#quxian').combobox('reload','RegionServlet'); //清理原有下拉项目
        
    }
    }">
    市:<input id="shi" class="easyui-combobox" style="100px"
    data-options="{
    url:'RegionServlet',
    valueField:'regionID',
    textField:'regionName',
    onSelect:function(region)
    {
        $('#quxian').combobox('clear');// 清除原有项目
        // 重新加载
        $('#quxian').combobox('reload','RegionServlet?parentid='+region.regionID);
    }
    
    }">
    区县:<input id="quxian" class="easyui-combobox" style="100px"
    data-options="{
    url:'RegionServlet',
    valueField:'regionID',
    textField:'regionName'
    }">
    </body>
    </html>

    2. 通过hibernate创建实体类与映射文件

    实体类:

    package com.hanqi.entity;
    
    // 地区实体类
    public class Region {
    
        // 地区ID
        private String regionID;
        
        // 地区名称
        private String regionName;
            
        // 上级地区ID
        private String parentRegionID;
    
        public String getRegionID() {
            return regionID;
        }
    
        public void setRegionID(String regionID) {
            this.regionID = regionID;
        }
    
        public String getRegionName() {
            return regionName;
        }
    
        public void setRegionName(String regionName) {
            this.regionName = regionName;
        }
    
        public String getParentRegionID() {
            return parentRegionID;
        }
    
        public void setParentRegionID(String parentRegionID) {
            this.parentRegionID = parentRegionID;
        }
        
        
    }

    3.DAO层代码:

    package com.hanqi.dao;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    
    import com.hanqi.entity.Region;
    
    public class RegionDAO {
    
    
        Configuration cfg = null;
        ServiceRegistry sr =null;
        SessionFactory sf =null;
        Session se=null;
        Transaction tr=null;
        public RegionDAO()
        {
            //加载配置文件
            cfg = new Configuration().configure();
            //注册服务
            sr = new StandardServiceRegistryBuilder()
                    .applySettings(cfg.getProperties())
                    .build();
        }
        // 初始化
        private void init()
          {
              sf=cfg.buildSessionFactory(sr);
              se= sf.openSession();
              tr=se.beginTransaction();
          }
        // 提交和释放
         private void destory()
          {
                  tr.commit();
                se.close();
                sf.close();
          }
         
         // 获取数据列表
         
         public List<Region> getList(String parentid)
         {
             
             List<Region> rtn = new ArrayList<Region>();
             
             init();
             
             // 查询数据
             rtn=se.createQuery("from Region where parentRegionID = ?")
                     .setString(0, parentid).list();
             
             destory();
             
             return rtn;
         }
    }

    4.Service层代码:

    package com.hanqi.service;
    
    import java.util.List;
    
    import com.hanqi.dao.RegionDAO;
    import com.hanqi.entity.Region;
    
    public class RegionService {
        
        public List<Region> getList(String parentid)
        {
            return new RegionDAO().getList(parentid);
        }
    
    }

    5.Servlet层代码:(解析JSON数据的jar包FastJson)

    package com.hanqi.controller;
    
    import java.io.IOException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.alibaba.fastjson.JSONArray;
    import com.hanqi.entity.Region;
    import com.hanqi.service.RegionService;
    
    public class RegionServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        
        public RegionServlet() {
            super();
           
        }
    
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                
                request.setCharacterEncoding("UTF-8");
                response.setCharacterEncoding("UTF-8");
                response.setContentType("text/html");
                
                // 接收参数
                String parentid = request.getParameter("parentid");
                
                if(parentid!=null)
                {
                
                // 读取地区代表
                List<Region> lr = new RegionService().getList(parentid);
                ;
                // 返回JSON格式的数据
                String json = JSONArray.toJSONString(lr);
                
                response.getWriter().write(json);
                }
                else
                {
                    response.getWriter().write("[]");
                }
        }
    
        
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    IDE-常用插件
    Go-竞态条件-锁
    Go-发送邮件
    复刻网络Yum源配置为本地Yum源使用
    测试
    九.查找算法
    九.多线程-PDF笔记
    八.设计模式
    八.排序算法:复杂度
    七.注解
  • 原文地址:https://www.cnblogs.com/miracle-0807/p/6112126.html
Copyright © 2011-2022 走看看