【高分】【在线等】请问,有什么比较好的方法来作ajax的response?谢谢~
请问,有什么比较好的方法来作ajax的response?谢谢~
在ajax的大多数教程中,一般都是用如下方式来写response,这样代码中就出现了好多out.println,感觉蛮麻烦的~
- Java code
response.setContentType("text/xml; charset=utf-8");response.setHeader("Cache-Control", "no-cache");PrintWriter out = response.getWriter();out.println("<RESPONSE>");out.println("<page>" + page + "</page>");out.println("</RESPONSE>");out.close();]
所以我自己乱写了个
- Java code
public static void response(HttpServletResponse response, String[][] xmlArgs) throws Exception { response.setContentType("text/xml; charset=utf-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); out.println("<RESPONSE>"); for (int i = 0; i < xmlArgs.length; i++) { if ("~@begin@~".equals(xmlArgs[i][1])) { out.println("<" + xmlArgs[i][0] + ">"); } else if ("~@end@~".equals(xmlArgs[i][1])) { out.println("</" + xmlArgs[i][0] + ">"); } else { out.println("<" + xmlArgs[i][0] + ">" + xmlArgs[i][1] + "</" + xmlArgs[i][0] + ">"); } } out.println("</RESPONSE>"); out.close();}
然后这样使用
- Java code
String[][] newsXml = new String[5 * rowCot + 4][2];newsXml[0][0] = "page";newsXml[0][1] = Integer.toString(page);newsXml[1][0] = "pageSize";newsXml[1][1] = Integer.toString(pageSize);newsXml[2][0] = "pageCot";ewsXml[2][1] = Integer.toString(pageCot);newsXml[3][0] = "rowCot";newsXml[3][1] = Integer.toString(rowCot);int xmlIdx = 3;// 这里循环列出while(true) { newsXml[++xmlIdx][0] = "news"; newsXml[xmlIdx][1] = "~@begin@~"; newsXml[++xmlIdx][0] = "id"; newsXml[xmlIdx][1] = Integer.toString(news.getId()); newsXml[++xmlIdx][0] = "top"; newsXml[xmlIdx][1] = Integer.toString(news.getTop()); newsXml[++xmlIdx][0] = "title"; newsXml[xmlIdx][1] = title; newsXml[++xmlIdx][0] = "news"; newsXml[xmlIdx][1] = "~@end@~";}XmlUtil.response(response, newsXml);
我知道这也是很蠢很麻烦的办法,限制也很多,用起来很不方便,请问大家都是如何response的呢~?或者有什么比较轻量的框架或现成的jar可以用呢?能给出详细的方法么,谢谢~
PS.我的ajax就是按照教程那样手写的,没有用的DWR等框架的,我只想知道用什么方法来RESPONSE比较好比较优雅,谢谢~
[解决办法]
- JScript code
PrintWriter out = response.getWriter();out.println("<RESPONSE>");out.println("<page>" + page + "</page>");out.println("</RESPONSE>");out.close();]
[解决办法]
直接传出news的recordset
然后利用field.name来做标签 值就是field.value并且可以由rs来获取page,pagecount等信息。
[解决办法]
要不你就直接从servlet返回json
然后前台用js动态加入 也可以
[解决办法]
[解决办法]
推荐使用JSON来向前返回数据,再在前台用JAVASCRIPT处理返回的数据。
如var data = eval("("+responseText+")"),这样转化出来的就是一个对象。
再对这个JAVASCRIPT对象进行相关的处理即可
[解决办法]
[解决办法]
用json吧
原生态js
[解决办法]
$(this).html("XXXXXXXXXXXXXXXX");