jquery通过struts2请求,在jsp页面形成二级联动下拉列表

 参考博客:http://hardwin.iteye.com/blog/498044

总算把想到的东东弄出来了。下面先记录一下

首选在struts.xml里加入,就像普通的struts的action一样加入就OK了
<action name="ajaxGetType" class="net.mtk.action.ReactAction">
  </action>

JSP调用,一般说不好这样写的,但是不管了,黑猫白猫,抓到老鼠就是好猫

<td width="100">
      <s:select headerValue="--请选择--" headerKey="0"
       list="CpTvValueForm.CpOrgList" name="CpTvValueForm.Cp_id_qry"
       listKey="cp_id" listValue="cp_name"
       cssStyle="width:180px" value="CpTvValueForm.Cp_id_qry" οnchange="onchangeShow(this.value)"></s:select>         
     </td>
     <th width="100">
      通道选择
     </th>
     <td width="100">
      <select name="tv_prot_id_qry" id="tv_prot_id_qry"   style="width:160px"></select>
     </td>

下面是JS

<script type="text/javascript">
jQuery(function($){  
 var obj=$("#CpTvValueForm.Cp_id_qry");  
 if(typeof obj != 'undefined' && obj !=''){ 
     onchangeShow(0);     //初始化的时候,也执行一次,不然没有数据下来
 } 
});
function onchangeShow(cp_id){
jQuery.ajax({  
url : "${contextPath}/mtk/ajaxGetType!cpTvPort.action",    //这个要全路径,有着血淋淋的教训
data : {cp_id_qry : cp_id},  // 传递参数  
type : "post",  
cache : false,  
dataType : "json",  
success:onchangecallback     //开始一直觉得调用的时候怎么没有参数,后来发现确实不需要
});
}
function onchangecallback(data){
    var jqueryObj=$(data);          //从action获取数据
    document.all['tv_prot_id_qry'].options.length = 0;  
    var str="<option value='0'>--全部--</option>";  
    for(var i=0;i<jqueryObj.length;i++){  
        str+="<option value='"+jqueryObj[i].tv_prot_id+"'>"+jqueryObj[i].tv_name+"</option>" 
    }  
    $("#tv_prot_id_qry").html(str);  
}
</script>

action里的文件

 public void cpTvPort() throws SQLException, IOException {
  CpTvPortPageDao CpTvPortDao = new CpTvPortPageDao();
  CpTvPortList = CpTvPortDao.select(0, 0, 0, cp_id_qry, null, 1000, 1);
  JSONArray jsonObj = JSONArray.fromObject(CpTvPortList);
  sendMsg(jsonObj.toString());

 }

 public void sendMsg(String content) throws IOException {
  HttpServletResponse response = ServletActionContext.getResponse();
  response.setCharacterEncoding("UTF-8");
  response.getWriter().write(content);
 }

另外就一几个包,和js一定要导入jquery.js,json2.js
commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang-2.0.jar
commons-logging-1.0.4.jar
ezmorph-1.0.2.jar
json-lib-2.2.2-jdk15.jar
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值