现在的位置: 首页 > 综合 > 正文

整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据

2012年07月14日 ⁄ 综合 ⁄ 共 1796字 ⁄ 字号 评论关闭

本文开发环境是SSH2,ajax插件使用jQuery 1.2.6.js和json2.js

实现目的:

在struts2 标签s:doubleselect二级联动标签的基础上实现事件:第二级onchange时调用struts2 action,在action中查询一个名称,然后返回回来,此信息显示在页面上(这只是给用户一个提示信息,不影响表单能否提交)

 

由于struts2 doubleselect标签任何事件都不起作用,只能根据查看源文件中生成的id来定义它的onchange事件

 

 

 jsp页面引入了jquery.js和json2.js

 

需要加事件的二级联动jsp代码

 

  1. <td class="alignLeft" width="22%">  
  2.         所属业务/项目名称:  
  3.     </td>  
  4.     <td valign="top" class="alignLeft" width="20%">  
  5.         <s:doubleselect name="changeApplyFormBO.operationId" list="operationList" listKey="id"  
  6.         listValue="operationName" doubleList="operationSubProductList"   
  7.         doubleListKey="id" doubleListValue="prudName"  doubleName="changeApplyFormBO.productId"  
  8.         headerKey=""  headerValue="--- Please Select ---" />    
  9.     <span id="company" style="color:red"></span>  
  10.     </td>  

 

 

 

我们需要在“项目名称”被改变的事件下调用函数,在生成的静态页面中查得它的id是cbApplySubmit_changeApplyFormBO_productId

说明一下,这里生成的id有一点规律,貌似。cbApplySubmit是本页面form表单的action,而changeApplyFormBO.productId是“项目名称”的name

 

 

 

下面给出定制下拉菜单事件的js

 

  1. <script>  
  2.       
  3.       $(function(){  
  4.           var obj=document.getElementById("cbApplySubmit_changeApplyFormBO_productId");  
  5.           obj.onchange=function(){      
  6.            var prodId=obj.value;  
  7.            var url="${contextPath}/assets/businessChange/ajaxGetCompany.do";  
  8.            var jsonProd={productId:prodId};    //JSON对象      
  9.            var prodStr=JSON.stringify(jsonProd);    //将JSON对象转变成JSON格式的字符串  
  10.            $.post(url,{json:prodStr},callback,"json");   
  11.           }  
  12.         function callback(json){     
  13.             $("#company").html(json.msg);  
  14.          }   
  15.      });   
  16.       
  17. </script>  

 

这里,不管是从浏览器端(JS,Ajax,Jquery等)发送给服务器端,还是从服务器端(Struts的Action,Servlet等)发送回客户端,发送的都是JSON格式的字符串

 

 

  1. var jsonProd={productId:prodId};  

 

这句是组装JSON对象,这里很简单,key是productId,value是页面选择的项目名称的id

 

抱歉!评论已关闭.