Ajax+Struts+Hibernate实现级联下拉单

Ajax+Struts+Hibernate实现级联下拉单
转自:http://www.blogjava.net/rain1102/articles/69348.html
-------------------------------------------------------------------
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  
< head >
    
< title > kind.html </ title >
  
< script  type ="text/javascript"  src ="js/common.js" ></ script >
  
< script  type ="text/javascript" > ...
    
function refreshModelList()...
      
var oneName=document.getElementById("kindone").value;
      
if(oneName=="")...{
        clearlist();
        
return;
      }

      
var url="kind.do?method=search&&kindid="+oneName;
     
      createXMLHttpRequest();
      
      xmlHttp.onreadystatechange
=handleStateChange;
      xmlHttp.open(
"GET",url,true);
      xmlHttp.send(
null);
      
    }

    
function handleStateChange()...{
      
if(xmlHttp.readyState==4)...
        
if(xmlHttp.status==200)...{
          setNames(); 
        }

      }

    }

    
function clearlist()...{
      
var models=document.getElementById("kindtwo");
      
while(models.childNodes.length>0)...{
        models.removeChild(models.childNodes[
0]);
      }

    }

    
function setNames()...{
      clearlist();
      
var models=document.getElementById("kindtwo");
      
var xmlDoc=xmlHttp.responseXML;
      
var results=xmlDoc.getElementsByTagName("kind");
      
var option=null;
      
for(var i=0;i<results.length;i++)...{
        option
=document.createElement("option");
        option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));
        models.appendChild(option);
      }

    }

  
</ script >
  
</ head >
  
  
< body >
    
< h2 > dynamicLists </ h2 >
    
< select  id ="kindone"  onchange ="refreshModelList();" >
      
< option  value ="1" > a </ option >
      
< option  value ="2" > b </ option >
      
< option  value ="3" > c </ option >
      
< option  value ="4" > d </ option >
    
</ select >
    
< select  id ="kindtwo" >
    
</ select >
  
</ body >
</ html >
/**/ /*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 
*/

package  com.rain.struts.action; 
import  java.io.IOException;
import  java.io.PrintWriter;
import  java.util.Iterator;
import  java.util.List;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;
import  org.apache.struts.action.ActionForm;
import  org.apache.struts.action.ActionForward;
import  org.apache.struts.action.ActionMapping;
import  org.apache.struts.actions.DispatchAction;
import  org.apache.struts.validator.DynaValidatorForm;

import  com.rain.bean.KindDao;

/** */ /** 
 * MyEclipse Struts
 * Creation date: 09-13-2006
 * 
 * XDoclet definition:
 * @struts.action parameter="method"
 
*/

public   class  KindAction  extends  DispatchAction  ... {
 
/**//*
  * Generated Methods
  
*/


 
/** *//** 
  * Method execute
  * 
@param mapping
  * 
@param form
  * 
@param request
  * 
@param response
  * 
@return ActionForward
  
*/

 
public ActionForward search(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) 
...{
  DynaValidatorForm kindForm 
= (DynaValidatorForm)form;
  KindDao dao
=new KindDao();
  
int kindid=Integer.parseInt(kindForm.getString("kindid"));
  List list
=dao.findAllKind(kindid);
  Iterator it
=list.iterator();
  
if(it.hasNext())...{
   PrintWriter out;
   
try ...{
    response.setContentType(
"text/xml;charset=UTF-8");
    response.setHeader(
"Cache-Control""no-cache");
    out 
= response.getWriter();

    out.println(
"<response>");
    
while(it.hasNext())...{
     String name
=it.next().toString();
     out.println(
"<kind>"+name+"</kind>");
    }

    out.println(
"</response>");
    it
=null;
    out.close();
   }
 catch (IOException e) ...{
    
// TODO 自动生成 catch 块
    e.printStackTrace();
   }

   
  }
else...{
   response.setStatus(HttpServletResponse.SC_NO_CONTENT);
  }

  
// TODO Auto-generated method stub
  return null;
 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值