使用struts2完成jQuery进行ajax级联

来源:互联网 发布:数据魔方下线了吗 编辑:程序博客网 时间:2024/05/21 19:33

上网找了下资料,参考着做了个

 

JSP页面,使用JSTL的标签。

[html] view plaincopy
  1. <tr>  
  2.     <td width="10%">所属栏目</td>  
  3.     <td width="90%"><select name="columnInfo" id="columnInfo">  
  4.         <option value="0">--请选择--</option>  
  5.         <c:forEach var="columns" items="${columnsList}">  
  6.             <option value="${columns.id}">${columns.name}</option>  
  7.         </c:forEach>  
  8.     </select><select name="subColumnInfo" id="subColumnInfo"></select></td>  
  9. </tr>  

JS

[javascript] view plaincopy
  1. $(function(){            
  2.     $("#columnInfo").change(function(){                
  3.         $.getJSON("NewsAction!ajax",{parColumnId:$(this).val()},function(myJSON){                    
  4.             var myOptions="";                    
  5.             for(var i=0;i<myJSON.length;i++){                       
  6.                  myOptions += '<option value="' + myJSON[i].optionValue + '">' +  
  7.                     myJSON[i].optionDisplay + '</option>';                    
  8.                  }                   
  9.              $("#subColumnInfo").empty();                    
  10.              $("#subColumnInfo").html(myOptions);                
  11.         });            
  12.     });            
  13.     $("#columnInfo").change();        
  14. })   


后台处理

[java] view plaincopy
  1. // 处理AJAX级联请求  
  2.     public void ajax() throws Exception {  
  3.         String JSON_text = "";  
  4.         if (parColumnId == 0) {  
  5.             JSON_text = "[{optionValue:'0',optionDisplay:'--请选择--'}]";  
  6.         } else {  
  7.             List<Columns> subColumnList = columnService  
  8.                     .findColumns(parColumnId);  
  9.             if (subColumnList.size() > 0) {  
  10.                 JSON_text = "[";  
  11.                 for (int i = 0; i < subColumnList.size(); i++) {  
  12.                     Columns sub = subColumnList.get(i);  
  13.                     JSON_text += "{optionValue:'" + sub.getId()  
  14.                             + "',optionDisplay:'" + sub.getName() + "'}";  
  15.                     if (i < subColumnList.size() - 1) {  
  16.                         JSON_text += ", ";  
  17.                     } else if (i == subColumnList.size() - 1) {  
  18.                         JSON_text += "]";  
  19.                     }  
  20.                 }  
  21.             }  
  22.         }  
  23.         PrintWriter out = null;  
  24.         try {  
  25.             ServletActionContext.getResponse().setCharacterEncoding("UTF-8");  
  26.             out = ServletActionContext.getResponse().getWriter();  
  27.         } catch (IOException ex) {  
  28.             ex.printStackTrace();  
  29.         }  
  30.         out.write(JSON_text);  
  31.         out.close();  
  32.     }  

原创粉丝点击