jQuery - ajax
1. Java 代码
public class HandlerAction { private List<T> list;// 或 ArrayList<HashMap<Object, Object>> list private String jsonArray; // getter && setter public String doSth() throws Exception { list = ...;// 直接返回 list,在 ajax 的 success 下面使用 // 或者是转换成 json 字符串,然后再在 ajax 里转换成 json 对象后使用 jsonArray = new net.sf.json.JSONArray().fromObject(list).toString(); return "success"; } }
2. 关于 $(function() {});
$(function() {}); 是 $(document).ready(function(){}) 的简写; $(document).ready(function(){}); 里的代码是在页面内容都加载完才执行的; <script> $(document).ready(function() { // ... }); // 或 $(function() { // ... }); </script> 当然如果你把 <script> 标签放到页面最后面那么就没问题了,此时和 ready 效果一样; <body> // ... <script> // ... </script> </body>
3. Ajax
<script type="text/javascript"> $(function() { $.ajax({ url: "", data: { "arg0": arg0, "arg1": arg1 }, async: true, dataType: "json", success: function(data) { var html = ''; // 遍历方式 1 // jsonArray 是后台返回的 json 字符串 $.each(eval('(' + data.jsonArray + ')'), function(i, item) { html += '<li class="green"><h3>' + item.time + '</h3><dl><dt><span>' + item.content + '</span></dt></dl></li>'; }); $("#timeline").append(html); // 遍历方式 2 // list 是后台返回的 List<T> list /* for ( var i in data["list"]) { html += '<li class="green"><h3>' + data["list"][i].time + '</h3><dl><dt><span>' + data["list"][i].content + '</span></dt></dl></li>'; } $("#timeline").append(html); */ }, error: function() { alert("系统错误"); } }); }); </script>
4. $.each(obj, function(i, item) {});