阅读:9450回复:3
如何快速明了提取server.call回调函数的返回值
var param={ component:"JavaCallMixFileController",
method:"select1", data:[{id:id}], callBack:function(ret){// alert(ret[0].elements[0].key + " = " + ret[0].elements[0].value); // alert(ret[0].elements[1].key + " = " + ret[0].elements[1].value); // alert(ret[0].elements[2].key + " = " + ret[0].elements[2].value); // alert(ret[0].elements[3].key + " = " + ret[0].elements[3].value); [zhangkang于2016-04-06 20:20编辑了帖子]
|
|
沙发#
发布于:2016-04-07 14:47
|
|
|
板凳#
发布于:2016-04-06 22:44
首先看一下java里数据返回格式处理
import java.io.IOException; import java.io.PrintWriter; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import org.hibernate.transform.Transformers; import com.sunsheen.jfids.system.database.DBSession; import com.sunsheen.jfids.system.servlet.Servlet; import com.sunsheen.jfids.util.DataBaseUtil; @Servlet(value="/TestServlet.svt", anonymous=true) public class TestServlet extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=utf-8"); DBSession hibernateSession = DataBaseUtil.getHibernateSession(); List<Map> resultList=hibernateSession.createSQLQuery("select * from test").setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list(); JSONArray retData = JSONArray.fromObject(resultList); PrintWriter out = response.getWriter(); out.print(retData); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ doGet(request, response); } } 这里查询的结果是一个List<map>的数据,查询结果如下图 图片:1.jpg ![]() 这里需要用到 JSONArray retData = JSONArray.fromObject(resultList); 处理下,由于这里用的是大数据平台,没有支持JSONArray 的jar包,附件提供了需要的jar包,(4.0平台是内置的) 再看一下前台js $(document).ready(function(){ $.ajax({ url:"/ChengDuGBD/TestServlet.svt", type:"POST", data:{ }, success:function(result){ var html=""; resultList=eval(result); for(var n=0;i<resultList.length;n++){ html+="<p>"+resultList[n].name+"<p>"; } $(".test").html(html); } }); }) 在接收到result后通过 eval(result)处理一下,就可以直接通过resultList[n].属性名获取对应值了 html代码如下: <!DOCTYPE HTML> <html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="js/jquery-1.11.3.js"></script> <script src="js/test.js"></script> </head> <body> <div class="test"> </div> </body> </html> 运行结果如下图 图片:2.jpg ![]() |
|
|
地板#
发布于:2016-04-06 20:25
server.call回调函数的返回值ret是一个数组内嵌map的结构,所以我们首先要遍历数组,然后和Java一样去获取map数据,代码如下:
for (var i = 0; i < ret.length; i++) { // ret[i]=map,即map.get('text') alert(ret[i].get('text')); } |
|