`
zqb666kkk
  • 浏览: 732004 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

struts2+spring3+ibatis下类似淘宝搜索的的三级互联效果

阅读更多

项目框架 struts2+spring3+ibatis

用了js+json+jq去实现这个效果

 

需要jquery-min.js
<script>
function selectOnchangeb(){
var obj=document.getElementById('myselecta');  
 
var index=obj.selectedIndex; //序号,取当前选中选项的序号  
 
var val = obj.options[index].value; 
  var sel = $("#optionb"); //二级下拉框Id

var parentID=val;
    //alert(parentID);
    $.getJSON("${context}/courseTtype/index/getCourseTypeSonTypes.action?parentID="+parentID,function call(data){  
             writeHtml(data); 
        });
}  
function writeHtml(data){
    var sel = $("#optionb"); //二级下拉框Id
    sel.empty();
      var objb=document.getElementById('optionb'); 
     objb.options.length=0;
      objb.add(new    Option("","")); 
   // alert(data);
$.each(data,function(i, item){//填充到二级下拉框
//alert(item.name);
                 // $("<option value='"+item.mainid+"'>"+item.name+"</option>").appendTo(sel);    //这个jq实现不了那个填充效果不知道为什么  无奈之下只能下面的js填充法去实现
                  var obj=document.getElementById('optionb');  
       //  添加一个选项  
         obj.add(new    Option(item.name,item.mainid));  
                }); 
                selectOnchangec();
}


function selectOnchangec(){
//alert('b');
//var obj=document.getElementById('optionb');  
 
//var index=obj.selectedIndex; //序号,取当前选中选项的序号  
      var selects=document.getElementsByName('optionb');
      var val;
    if(selects&&selects[0])
    {
       val=selects[0].value;
     }
 //val = obj.options[index].value; 
  var sel = $("#optionc"); //三 级下拉框Id

var parentID=val;
   // alert(parentID);
    $.getJSON("${context}/courseTtype/index/getCourseTypeSonTypes.action?parentID="+parentID,function call(data){  
             writeHtmlb(data); 
        });
}  
function writeHtmlb(data){
    var sel = $("#optionc"); //三级下拉框Id
    sel.empty();
      var objb=document.getElementById('optionc'); 
     objb.options.length=0;
      objb.add(new    Option("","")); 
   // alert(data);
$.each(data,function(i, item){//填充到二级下拉框
//alert(item.name);
                 // $("<option value='"+item.mainid+"'>"+item.name+"</option>").appendTo(sel);
                  var obj=document.getElementById('optionc');  
 
       //  添加一个选项  
         obj.add(new    Option(item.name,item.mainid));  
                }); 
}
</script>

 


             <select onchange="selectOnchangeb()" id="myselecta">
             <option value=""></option>
             <s:iterator id="useriterator" value="#request['CourseTypeBigTypes']" >
    <option value="<s:property value="mainid" />"><s:property value="name" /></option>        
    </s:iterator>
             </select>
             
             <select id="optionb" onchange="selectOnchangec()"><option value=""></option></select>
             <select id="optionc" ><option value=""></option></select>

 

 

后台:

ibatis

<select id="getCourseTypeBigTypes" resultMap="courseTypeResultMap"
  parameterClass="java.lang.String">
  select * from Base_CourseType where Type_ParentID=0
 </select>
 <select id="getCourseTypeSonTypes" resultMap="courseTypeResultMap"
  parameterClass="java.lang.String">
  select * from Base_CourseType where Type_ParentID=#parentID#
 </select>

 

action:

// 高级搜索 联动下拉框 第一个下拉框数据读取
 public String AdvancedSearch() {
  List CourseTypeBigTypes = courseTypeService.getCourseTypeBigTypes();
  HttpServletRequest request = ServletActionContext.getRequest();
  request.setAttribute("CourseTypeBigTypes", CourseTypeBigTypes);
  return SUCCESS;
 }

// 二级联动下拉框数据
 public void getCourseTypeSonTypes() throws IOException {
  List CourseTypeSonTypes = courseTypeService.getCourseTypeSonTypes(this
    .getParameter("parentID"));
  List list = new ArrayList();
  list = CourseTypeSonTypes;
  List listb = new ArrayList();
  StringBuffer selectoptions = new StringBuffer();
  for (Iterator i = list.iterator(); i.hasNext();) {
   CourseType map = (CourseType) i.next();
   String mid = map.getMainid();
   String name =  map.getName();
   selectoptions.append("<option value='" + mid + "'>" + name + "</option>") ;
   listb.add(map);
  }
  
  
  JSONArray jsonArray = JSONArray.fromObject(listb);


  HttpServletResponse hsr = ServletActionContext.getResponse();
  //hsr.getWriter().write(selectoptions.toString());
  PrintWriter writer;
  try {
  writer = hsr.getWriter();
  writer.print(jsonArray);
  writer.flush();
  writer.close();

  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }


  // return SUCCESS;
 }  

 

页面要调用 onload

 

<body onload="selectOnchangeb();">

 

daoimpl

:
 @Override
 public List getCourseTypeBigTypes() {
  List list = new ArrayList();
  list = this.getSqlMapClientTemplate().queryForList(
    "getCourseTypeBigTypes");
  return list;
 }

 @Override
 public List getCourseTypeSonTypes(String parentID) {
  // TODO Auto-generated method stub
  List list = new ArrayList();
  list = this.getSqlMapClientTemplate().queryForList(
    "getCourseTypeSonTypes",parentID);
  return list;
 }

 

 

这个功能花了我一天多时间

 

 

 

sql:

create table hulianType (
   MainID               varchar(36)          not null,
   Type_Name            varchar(50)          not null,
   Type_ParentID        varchar(36)          not null,
   Type_CreateDate      datetime             not null,
   Type_IsSystemDefine  int                  null,
   Type_Describe        text                 null,
   constraint PK_hulianType  primary key (MainID)
)

 

 

转载请注明作者 谢谢 如有不清楚的同学可以 QQ交流 6637152

  • 大小: 26.8 KB
0
1
分享到:
评论
4 楼 zqb666kkk 2011-10-23  
macrotea 写道
浩男?

通过zTree,无限级别联动

恩   发个例子给我看看
3 楼 macrotea 2011-10-22  
浩男?

通过zTree,无限级别联动
2 楼 左手边 2011-10-21  
有点乱
1 楼 zqb666kkk 2011-10-20  
  自己支持下

相关推荐

    struts2+spring3+ibatis项目整合案例

    Struts2、Spring3和iBATIS是Java Web开发中常用的三大框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何...

    struts2+spring+Ibatis框架包

    在"ssi_jar"这个压缩包中,可能包含了这三个框架的库文件,例如struts2相关的jar包(如struts2-core、struts2-convention等)、Spring的核心库(如spring-context、spring-web等)以及iBatis的库文件(如ibatis-3-...

    struts2+hibernate+spring+ibatis 小实例

    struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    struts2+spring+ibatis+mysql

    "Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...

    struts2+spring2+ibatis

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们的集成应用可以构建出高效、灵活的后端系统。Struts2作为MVC(Model-View-Controller)架构的一部分,主要负责处理HTTP请求和展示视图;Spring...

    Struts2+Spring2+iBatis2整合的例子

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的框架,它们分别负责表现层、业务层和数据访问层。将这三个框架整合在一起,可以实现MVC(Model-View-Controller)架构,提高应用的灵活性和可维护性。 **...

    Struts2+Spring2+iBatis2+MySQL的完整示例

    开发环境说明 ...本示例完整地结合Struts2+Spring2+iBatis2+MySQL5,演示了一个用户表的增、删、改、查。 想完整学习Struts2+Spring+iBatis的同仁,可以在这个例子中学习或模仿最基本也是最核心的技术要点。

    Struts2+spring+ibatis三大框架整合实例

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...

    struts2+spring+mybatis+easyui的实现

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们分别负责MVC模式中的控制层、业务层和服务层。EasyUI则是一个基于jQuery的UI组件库,用于快速构建美观且响应式的Web应用界面。下面我们将深入探讨这三...

    struts2 + spring + ibatis 实例

    struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例

    spring+struts2+ibatis整合的jar包

    在Java Web开发中,Spring、Struts2和iBatis是三个非常重要的框架,它们各自在不同的层面上提供了强大的功能。Spring是一个全面的后端应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能;Struts...

    struts2+spring+ibatis的小demo

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的企业级应用程序。在这个“struts2+spring+ibatis”的小demo中,我们将深入探讨这三个框架的核心功能以及它们如何协同...

    struts2+spring+ibatis项目实例

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的企业级应用程序。在这个项目实例中,我们将深入探讨这三个框架如何协同工作,以及它们各自的核心功能。 首先,...

    maven3+struts2+spring+ibatis

    maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...

    Struts2+Spring+Ibatis整合的简单人事管理系统

    Struts2+Spring+Ibatis整合的简单人事管理系统 没分了,转载过来的,有需要的看看吧,我觉得不错~~

    struts2+spring+ibatis整合项目实例

    Struts2、Spring和iBatis是Java Web开发中常用的三个开源框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。这个整合项目实例旨在展示如何将这三个框架集成到一起,以实现更强大的功能。 1....

    struts2 + spring + ibatis 整合例子

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层以及数据访问层。将这三个框架整合在一起,可以构建出高效、灵活且易于维护的Web应用程序。下面我们将详细...

    Struts2+Spring2.5+Ibatis完整增删改查Demo(含全部jar包)

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。这个"Struts2+Spring2.5+iBatis完整增删改查Demo"提供了一个完整的集成示例,包括所有必要...

Global site tag (gtag.js) - Google Analytics