ajax动态加载数据总结(2012.11.20)

当id为softId的选择下拉框选项改变时即调用getTypes()方法,getTypes得到后台action得到的json字符串并动态输出到前台

--》addUpdateSchedule.jsp:

 

<script type="text/javascript">

  $("#softId").change(getTypes);

//Ajax

function getTypes(){
  var obj = eval("document.all.softId");
  var softId = obj.options[obj.selectedIndex].value;
  if(softId != 0){  
   $.ajax({
    async : false,
    cache: true,
    type: 'POST',
    dataType : "json",
    url: "gettypes_bysoftid",     //请求的action路径
    data: "softId=" + softId,
    success:function(data){      //请求成功后处理函数。 
     setJSON = eval("("+data.result+")");    //把后台封装好的简单Json格式赋给对象
    },
    error:function(data){
     alert("获取信息异常");
    }
   });
   
   alert(setJSON.length);
   
   var div = document.getElementById("typee");
   for(var i=0;i<setJSON.length;i++){
    var html = '<span><input type="checkbox" name="typee" value="'+setJSON[i].id+'">'
         +setJSON[i].name+'&nbsp;</span>';
    div.innerHTML += html; 
   }
  }
 }
</script>

<body>

...

<tr>
     <td align="right">升级软件包:</td>
     <td align="left">
      <select id="softId" name="softId" >
       <option value="0">请选择</option>
       <s:iterator value="softwares" var="software">
       <option value="${software.id }">${software.versionName }</option>        
       </s:iterator>
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">被升级的掌机类型:</td>
     <td align="left" id="ttype" name="ttype">
      <div id="typee"></div>
     </td>
    </tr>

...

</body>

 

JsonPluginAction.java

...

public class JsonPluginAction extends ActionSupport {
...
 private String result; 
 private Integer softId;     //选中的软件包Id

...

/**
  * 获取掌机软件升级包对应升级的掌机信息(ajax)
  * @return
  */
 public String gettypes_bysoftid(){
  List<TerminalType> types = new ArrayList<TerminalType>();
  try {
   types = ConnectEjb.fssRemote.findTerminalTypeBySoftwareId(ConnectEjb.actor, softId);
  } catch (NoMethodAuthorityException e) {
   System.out.println(e.getMessage());
  } catch (NoObjectAuthorityException e) {
   System.out.println(e.getMessage());
  } catch (NoAvailableActorException e) {
   System.out.println(e.getMessage());
  } catch (Exception e) {
   System.out.println("未知错误");
  }
  
//  //过滤掉级联属性
//  JsonConfig jsonConfig = new JsonConfig();
//  jsonConfig .setExcludes( new String[]{ "id","name" } ) ;
//  //将json格式转换成字符串、并赋值给result属性
        JSONArray json = JSONArray.fromObject(types);
        result = json.toString();
  return SUCCESS;
 }

...

 

struts.xml

...

 <!-- json -->
 <package name="ajax" namespace="/" extends="json-default">
         <action name="*_*" class="com.keyman.fss.action.JsonPluginAction" method="{1}_{2}">
            <result type="json"></result>
         </action>
    </package>

...

posted @ 2012-11-20 17:46  zhenglongJava  阅读(202)  评论(0编辑  收藏  举报