`
lq410
  • 浏览: 16421 次
  • 性别: Icon_minigender_1
  • 来自: 广西南宁
最近访客 更多访客>>
社区版块
存档分类
最新评论

ajax+struts完成三级联动下拉框

阅读更多

1、jsp页面代码

js 代码
  1. <script type=< span="">"text/javascript">   
  2.         var req;   
  3.         window.onload=function(){   
  4.         }   
  5.            
  6.         function Change_Select()   
  7.         {   
  8.             var zhi=document.getElementById('select1').value;   
  9.             var url="doSelect.do?method=getSelect2&id="+zhi;   
  10.             if(zhi=="0"){   
  11.                 alert("请选择您要察看的信息");   
  12.                    return;   
  13.             }else{   
  14.                 if(window.XMLHttpRequest)   
  15.                 {   
  16.                     req=new XMLHttpRequest();   
  17.                 }else if(window.ActiveXObject)   
  18.                 {   
  19.                     req=new ActiveXObject("Microsoft.XMLHTTP");   
  20.                 }   
  21.                    
  22.                 if(req)   
  23.                 {   
  24.                     req.open("GET",url,true);   
  25.                     req.onreadystatechange=callback;   
  26.                     req.send(null);   
  27.                 }   
  28.             }   
  29.         }   
  30.            
  31.         function Change_Select2()   
  32.         {   
  33.             var zhi=document.getElementById('select2').value;   
  34.             //alert(zhi.substring(0,2));   
  35.             if(zhi=="0"){   
  36.                 alert("请选择您要察看的信息");   
  37.                    return;   
  38.                }   
  39.             if(true){   
  40.                 var url="doSelect.do?method=getSelect3&id="+zhi;   
  41.                 if(window.XMLHttpRequest)   
  42.                 {   
  43.                     req=new XMLHttpRequest();   
  44.                 }else if(window.ActiveXObject)   
  45.                 {   
  46.                     req=new ActiveXObject("Microsoft.XMLHTTP");   
  47.                 }   
  48.                    
  49.                 if(req)   
  50.                 {   
  51.                     req.open("GET",url,true);   
  52.                     req.onreadystatechange=callback2;   
  53.                     req.send(null);   
  54.                 }   
  55.             }else{   
  56.                 parent.topFram.location ="sqdSelectAll.go?method=getlistAll&id="+zhi;   
  57.             }   
  58.         }   
  59.            
  60.         function Change_Select3()   
  61.         {   
  62.             var zhi=document.getElementById('m_lbbm_th').value;   
  63.             //alert(zhi.substring(0,2));   
  64.             if(zhi=="0"){   
  65.                 alert("请选择您要察看的信息");   
  66.                    return;   
  67.                }else{   
  68.                 parent.topFram.location ="sqdSelectAll.go?method=getlistAll2&id="+zhi;   
  69.             }   
  70.         }   
  71.            
  72.         function callback()   
  73.         {   
  74.             if(req.readyState == 4)   
  75.             {   
  76.                 if(req.status == 200)   
  77.                 {   
  78.                     parseMessage();   
  79.                 }else{   
  80.                     alert("Not able to retrieve description"+req.statusText);   
  81.                 }   
  82.             }   
  83.         }   
  84.            
  85.         function callback2()   
  86.         {   
  87.             if(req.readyState == 4)   
  88.             {   
  89.                 if(req.status == 200)   
  90.                 {   
  91.                     parseMessage2();   
  92.                 }else{   
  93.                     alert("Not able to retrieve description"+req.statusText);   
  94.                 }   
  95.             }   
  96.         }   
  97. function parseMessage()   
  98.         {   
  99.             var xmlDoc=req.responseXML.documentElement;   
  100.             var xSel=xmlDoc.getElementsByTagName('select');   
  101.             var select_root=document.getElementById('select2');   
  102.             select_root.options.length=0;   
  103.                
  104.             for(var i=0;i<xsel.length;i++)   <="" span="">
  105.             {   
  106.                 var xValue=xSel[i].childNodes[0].firstChild.nodeValue;   
  107.                 var xText=xSel[i].childNodes[1].firstChild.nodeValue;   
  108.                 var option=new Option(xText,xValue);   
  109.                 try{   
  110.                     select_root.add(option);   
  111.                 }catch(e){   
  112.                 }   
  113.             }   
  114.         }   
  115.            
  116.         function parseMessage2()   
  117.         {   
  118.             var xmlDoc=req.responseXML.documentElement;   
  119.             var xSel=xmlDoc.getElementsByTagName('select');   
  120.             var select_root=document.getElementById('select3');   
  121.             select_root.options.length=0;   
  122.                
  123.             for(var i=0;i<xsel.length;i++)   <="" span="">
  124.             {   
  125.                 var xValue=xSel[i].childNodes[0].firstChild.nodeValue;   
  126.                 var xText=xSel[i].childNodes[1].firstChild.nodeValue;   
  127.                 var option=new Option(xText,xValue);   
  128.                 try{   
  129.                     select_root.add(option);   
  130.                 }catch(e){   
  131.                 }   
  132.             }   
  133.         }                           
  134.     </script>  
    2、html代码
  135.    

 

xml 代码
  1. <html:form action="/doSelect.do"  >    
  2.     <TABLE class = "cbToolbar" id = "idToolbar" cellpadding = '0' cellspacing = '0'>  
  3.         <TR align = "left" valign = "top" >  
  4.             <TD  NOWRAP> 物质类别:     
  5.                 <html:select  property="select1" onchange="Change_Select()">  
  6.                     <html:option value="0">请选择html:option>  
  7.                        <html:options collection="list1" property="typId" labelProperty="typName"/>  
  8.                 html:select>     
  9.                    
  10.                    
  11.                 <html:select property="select2" styleId="m_lbbm_se" onchange="Change_Select2()">  
  12.                     <html:option value="0">   html:option>  
  13.                 html:select>  
  14.                 <html:select property="select3" styleId="m_lbbm_th" onchange="Change_Select3()">  
  15.                     <html:option value="0">   html:option>  
  16.                 html:select>  
  17.   
  18.             TD>  
  19.                
  20.         tr>  
  21.     table>  
  22.      html:form>   

 

3、控制器源码

java 代码
  1. public ActionForward list1(   
  2.   ActionMapping mapping,   
  3.   ActionForm form,   
  4.   HttpServletRequest request,   
  5.   HttpServletResponse response) {   
  6.   
  7.   String lan = (String)request.getSession().getAttribute("languageType");   
  8.   if(lan==null)lan ="1";    
  9.      
  10.   String HQL = "from Type t where t.typLang= :lang  and t.leve=:leve order by t.typOrder";   
  11.   Query query = dao.getHQLQuery(HQL);   
  12.   query.setString("lang",lan);   
  13.   query.setInteger("leve",2);   
  14.      
  15.   List types = query.list();   
  16.   request.setAttribute("list1",types);   
  17.   return mapping.findForward("list");   
  18.  }   
  19.   
  20.     
  21.     
  22.  public ActionForward getSelect2(   
  23.    ActionMapping mapping,   
  24.    ActionForm form,   
  25.    HttpServletRequest request,   
  26.    HttpServletResponse response) {   
  27.      
  28.   String lan = (String)request.getSession().getAttribute("languageType");   
  29.   if(lan==null)lan ="1";    
  30.      
  31.   String id=request.getParameter("id");   
  32.            
  33.   response.setContentType("text/xml;charset=UTF-8");   
  34.   response.setHeader("Cache-Control","no-cache");   
  35.         String xml_start="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";   
  36.         xml_start+="<selects>";   
  37.         String xml_end="</selects>";   
  38.         String xml="<select><value>"+"0"+"</value><text>"+"select"+"</text></select>";   
  39.         String m_lbbm_se="";   
  40.         String m_lbmc_se="";   
  41.         List LbfList=null;   
  42.           
  43.         LbfList=getList(3,lan,new Integer(id).intValue());   
  44.           
  45.         Iterator it=LbfList.iterator();   
  46.         while(it.hasNext()){   
  47.             Type cgsqd=(Type)it.next();   
  48.             m_lbbm_se=cgsqd.getTypId().toString();   
  49.             m_lbmc_se=cgsqd.getTypName();   
  50.             xml +="<select><value>"+m_lbbm_se+"</value><text>"+m_lbmc_se+"</text></select>";   
  51.         }   
  52.         String last_xml=xml_start+xml+xml_end;   
  53.         try {   
  54.          System.out.println(last_xml);   
  55.          response.getWriter().write(last_xml);   
  56.         } catch (IOException e) {   
  57.             e.printStackTrace();   
  58.         }   
  59.         return null;   
  60.   
  61.   }   
  62.     
  63.  public ActionForward getSelect3(   
  64.    ActionMapping mapping,   
  65.    ActionForm form,   
  66.    HttpServletRequest request,   
  67.    HttpServletResponse response) {   
  68.   
  69.   String lan = (String)request.getSession().getAttribute("languageType");   
  70.   if(lan==null)lan ="1";    
  71.      
  72.   String id=request.getParameter("id");   
  73.            
  74.   response.setContentType("text/xml;charset=UTF-8");   
  75.   response.setHeader("Cache-Control","no-cache");   
  76.         String xml_start="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";   
  77.         xml_start+="<selects>";   
  78.         String xml_end="</selects>";   
  79.         String xml="<select><value>"+"0"+"</value><text>"+"select"+"</text></select>";   
  80.         String m_lbbm_se="";   
  81.         String m_lbmc_se="";   
  82.         List LbfList=null;   
  83.           
  84.         LbfList=getList_product(lan,new Integer(id).intValue());   
  85.           
  86.         Iterator it=LbfList.iterator();   
  87.         while(it.hasNext()){   
  88.             Product cgsqd=(Product)it.next();   
  89.             m_lbbm_se=cgsqd.getProId().toString();   
  90.             m_lbmc_se=cgsqd.getProName();   
  91.             xml +="<select><value>"+m_lbbm_se+"</value><text>"+m_lbmc_se+"</text></select>";   
  92.         }   
  93.         String last_xml=xml_start+xml+xml_end;   
  94.         try {   
  95.          System.out.println(last_xml);   
  96.          response.getWriter().write(last_xml);   
  97.         } catch (IOException e) {   
  98.             e.printStackTrace();   
  99.         }   
  100.         return null;   
  101.   
  102.   }   
  103.     
  104.     
  105.  private List getList(int lb,String lan,int parent_id){   
  106.      
  107.   String HQL = "from Type t where t.typLang= :lang  and t.leve=:leve and t.type.typId=:pid order by t.typOrder";   
  108.   Query query = dao.getHQLQuery(HQL);   
  109.   query.setString("lang",lan);   
  110.   query.setInteger("leve",lb);   
  111.   query.setInteger("pid",parent_id);   
  112.      
  113.   List types = query.list();   
  114.   return types;   
  115.  }   
  116.     
  117. private List getList_product(String lan,int typeid){   
  118.      
  119.   String HQL = "from Product p where p.proLang= :lang   and p.type.typId=:typeid order by p.proOrder";   
  120.   Query query = dao.getHQLQuery(HQL);   
  121.   query.setString("lang",lan);   
  122.   query.setInteger("typeid",typeid);   
  123.      
  124.   List lists = query.list();   
  125.   return lists;   
  126.  }   
分享到:
评论

相关推荐

    Struts2+Hiberante+ajax+Mysql 三级联动

    在三级联动中,Struts2可能被用来接收并处理前端的Ajax请求,根据不同的选择更新后续下拉框的数据。 **Hibernate** 是一个对象关系映射(ORM)框架,它允许开发者用面向对象的方式来操作数据库。在这个项目中,...

    Ajax+Struts+HIbernate实现省市联动

    在这个“Ajax+Struts+Hibernate实现省市联动”的项目中,我们将深入探讨这三个技术如何协同工作以实现高效的用户体验。 Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并...

    json实现三级联动下拉框---struts版(数据来自mysql数据库)

    在本项目中,"json实现三级联动下拉框---struts版(数据来自mysql数据库)"是利用JSON来处理省市县三级联动效果的示例,它通过Struts框架与MySQL数据库进行交互,动态地从数据库获取数据并更新到前端页面的下拉框中...

    ajax+jquery三级联动

    **Ajax+jQuery三级联动详解** 在Web开发中,三级联动是一种常见的交互设计,它通常用于实现下拉框之间的联动效果,比如省份、城市、区县的选择。在这个小demo中,我们将探讨如何使用Ajax和jQuery技术结合Struts2...

    三级联动的实例+struts2+hibernate3

    在IT行业中,"三级联动"通常指的是在一个应用中,三个或更多下拉列表框之间存在联动关系,即一个下拉框的选择会影响到下一个下拉框的数据加载。这种技术常见于地域选择、产品分类等场景,提供了良好的用户体验。在这...

    struts2二级联动下拉列表

    在给定的“struts2二级联动下拉列表”项目中,开发者利用Struts2、Hibernate和Spring这三大核心技术,创建了一个功能,使得用户在网页上可以选择省份和城市,这两个下拉列表会进行联动,即选择省份后,城市下拉列表...

    漂亮的Extjs+struts2实现联动下拉

    联动下拉框是一种常见的交互设计,常见于需要根据前一个选择项动态加载后一个选择项的场景,例如省份和城市的选择。在ExtJS中,我们可以使用ComboBox组件来实现这个功能。ComboBox允许我们设置远程数据源,通过AJAX...

    struts实现下拉框多级联动

    在Struts框架中实现下拉框的多级联动是一项常见的需求,比如在地址选择时,可以选择国家、省份、城市等,每一级的选择都会影响下一级的选项。 在Struts框架中,实现下拉框的联动通常涉及到以下几个关键知识点: 1....

    Ajax实现的三级联动下拉菜单

    struts2+jsp+json+javascript实现的三级下拉菜单,没有service和dao层,数据是虚拟的。需要的欢迎下载。项目直接导入myeclipse就可以使用。访问路径localhost:8080/ajax_day02_hw/proviencecityarea.jsp

    ajax,struts2,json实现省市区三级联动源码含全国省市区数据库

    “ajax,struts2,json实现省市区三级联动源码含全国省市区数据库”这一标题揭示了这个压缩包包含的是一项使用AJAX、Struts2和JSON技术来实现的省市区三级联动功能的源代码。这项技术常用于web应用中,允许用户在选择...

    ajax+json实现多级联动菜单

    ### 使用Ajax+JSON实现多级联动菜单的知识点详解 #### 一、背景介绍与概念解析 随着互联网技术的发展,用户对交互式应用的需求日益增长。RIA(Rich Internet Applications)概念的提出更是加速了这一趋势。其中,...

    struts2 ajax实现的二级联动

    在Struts2框架中,我们可以利用Ajax来实现二级联动效果,即在一个下拉框的选择改变时,通过Ajax请求动态地更新另一个下拉框的内容。 首先,我们需要了解Struts2的Action类,它是处理用户请求的核心。在实现二级联动...

    ajax+jQuery+ssh+oracle级联实例

    在这个实例中,Ajax负责在用户交互时发送请求到服务器,获取或提交数据,实现级联效果,例如下拉框的联动选择。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画设计和Ajax交互。jQuery的...

    ssh2+extCombobox联动动态下拉框

    在IT行业中,SSH2(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,用于构建企业级应用程序。而ExtJS的ComboBox是一个功能强大的组件,它提供了类似下拉列表的功能,用户可以选择一个或多个值。当...

    struts2二级联动实现

    在本实例中,我们将探讨如何使用Struts2框架中的标签来实现二级联动,具体以省市联动为例。 首先,我们需要了解Struts2框架的基础架构。Struts2的核心是Action类,它负责处理用户的请求,并通过Result返回相应的...

    Struts二级联动+MySQL连接池使用(代码)

    在Web应用中,一级联动是指一个下拉框的选择会直接影响另一个下拉框的内容,二级联动则是在一级联动的基础上,第二个下拉框的选择又会触发第三个或更多下拉框的更新。这种联动方式常见于地区选择、商品分类等场景。...

    strus2+oracle三级联动菜单

    在本实例中,“struts2+oracle三级联动菜单”是使用Struts2框架实现的一个功能,它涉及数据库(Oracle)的交互以及前端用户界面的动态更新。联动菜单,又称为级联下拉框,是指在一个下拉菜单的选择会影响到另一个或...

    web小项目:省市区三级联动(struts2+json)

    总的来说,这个"web小项目:省市区三级联动(struts2+json)"是一个典型的前后端交互案例,展示了如何利用Struts2处理业务逻辑,通过JSON进行数据交换,以及JavaScript如何动态更新页面内容,实现用户友好的交互体验...

    struts2+hibernate+spring实现的二级联动下拉列表.zip

    本项目"struts2+hibernate+spring实现的二级联动下拉列表"展示了如何将这三个框架整合起来,实现一个功能:在用户界面上展示两个下拉列表,当用户选择第一个下拉框的值时,第二个下拉框的内容会根据所选值动态更新。...

    Struts2+Spring+Hibernate+DWR实现的城市联动

    Struts2、Spring、Hibernate和DWR这四个技术在IT领域中是相当核心的组件,它们各自承担着不同的职责,并且常被组合使用以构建高效的企业级应用。在这个"Struts2+Spring+Hibernate+DWR实现的城市联动"项目中,我们将...

Global site tag (gtag.js) - Google Analytics