天天看点

Ajax动态刷新 级联刷新

1.jsp页面

首先是两个下拉框,当公司名字变动时会场负责人的选择列表也相应变换

[html] 

view

plain

copy print ?
  1. <tr>  
  2.         <td width="50%" bgcolor="#EAF6EA">  
  3.          <div align="right">  
  4.           公司名:  
  5.          </div>  
  6.         </td>  
  7.         <td bgcolor="#FFFFFF">  
  8.          <s:select list="comInfolist" listValue="Com_name"  
  9.           listKey="Com_id" name="Com_id" value="%{mai.comId}" id="com" onchange=<span style="color:#ff0000">"finduserlst1();"</span>></s:select>  
  10.          <label style="color: red;">  
  11.          </label>  
  12.        </tr>  
  13.           会场负责人:  
  14.          <input type="hidden" id="user_id" value="${mai.responsibleId}"/>  
  15.          <input type="hidden" id="user_name" value="${mai.responsibleName}"/>  
  16.          <select id="comuser" name="comusername" style="width: 150px" >  
  17.          </select>  

2.js

js的方法中首先获得选中框的值,也就是公司id。使用了json,data处为传值。

[javascript] 

  1.         function finduserlst1(){  
  2. //获取下拉框的选中项  
  3. var checkText=$("#com").find("option:selected").val();  
  4. $("#comuser").empty();  
  5. if(checkText==""){  
  6.     $("#comuser").append("<option value=''>----请选择----</option>");  
  7. }else{    
  8.   $.ajax({  
  9.    url:"<span style="color:#ff0000">companymanage!findPeopleByComId.do</span>",  
  10.    type:"post",  
  11.    dataType:"<span style="color:#ff0000">json</span>",  
  12.    data:{<span style="color:#ff0000">comID:checkText</span>},  
  13.    success:function(json){  
  14.        $("#comuser").append("<option value=''>----请选择----</option>");  
  15.        $.each(json, function(i){    
  16.            $("#comuser").append("<option value='"+json[i].userid+"'>"+json[i].realName+"</option>");  
  17.        });  
  18.    },  
  19.     error:function (XMLHttpRequest, textStatus, errorThrown){  
  20.       return false;  
  21. }  
  22. });   

3.java方法

然后是action中,首先获得传来的comId.之后是方法。注意这里的需要一个inputstream,不然会报错。这里的comID对应上面json处data所传的值。

  1. private String comID;  
  2. private List<User_info> userlist;  
  3. private InputStream inputStream;  
  4. public String findPeopleByComId() {  
  5.         System.out.println("进入了根据公司的id查询所有的人");  
  6.         userlist = meetingAddrInfoService.findPeopleByComId(Integer  
  7.                 .parseInt(comID));  
  8.         String jsonString = JSONArray.fromObject(userlist).toString();  
  9.         try {  
  10.             inputStream = new ByteArrayInputStream(jsonString.getBytes("UTF-8"));  
  11.         } catch (UnsupportedEncodingException e) {  
  12.             // TODO Auto-generated catch block  
  13.             e.printStackTrace();  
  14.         }  
  15.         return "searchUser";  
  16.         // System.out.println("根据公司id查询所有人:" + userlist + comID);  
  17.     }  
  18.     public InputStream getInputStream() {  
  19.         return inputStream;  
  20.     public void setInputStream(InputStream inputStream) {  
  21.         this.inputStream = inputStream;  
  22. <span style="white-space:pre">  </span>public List<User_info> getUserlist() {  
  23.         return userlist;  
  24.     public void setUserlist(List<User_info> userlist) {  
  25.         this.userlist = userlist;  
  26. <span style="white-space:pre">  </span>public String getComID() {  
  27.         return comID;  
  28.     public void setComID(String comID) {  
  29.         this.comID = comID;  

4.配置

struts2里的配置如下

  1. <!-- json的配置 -->  
  2.    <action name="companymanage" class="com.hb.action.system.MeetingAddrInfoAction" method="{1}">  
  3.     <result name="searchUser" type="stream">  
  4.                 <param name="contentType">text/json</param>  
  5.                 <param name="inputName">inputStream</param>  
  6.             </result>  
  7.    </action>  

继续阅读