action中json的应用

      这篇文章重点介绍action中json数据的返回处理;假设须要看前端代码的一些特效或ajax的json接收,请看上一篇博客:http://blog.csdn.net/yangkai_hudong/article/details/24422817

1.须要依赖的方法

 /**

    * 获取PrintWriter

    *

    * @throws IOException

    */

    public static PrintWritergetPrintWriter(HttpServletResponse response) throws IOException {

       response.setContentType("text/plain;charset=utf-8");

       response.setCharacterEncoding("UTF-8");

       response.setHeader("Pragma", "no-cache");

       response.setHeader("Cache-Control", "no-cache");

       response.setDateHeader("Expires", 0);

       PrintWriter out = response.getWriter();

       return out;

    }

 

    /**

    * 输出json操作

    *

    * @param out

    *            PrintWriter

    * @param result

    */

    public voidresponseStr(PrintWriter out, String result) {

       out.println(result);

       out.flush();

       out.close();

    }

 

    public String createJsonObject(Stringflag, String msg) {

       JSONObject obj = new JSONObject();

       try {

           obj.put("flag", flag);

           obj.put("msg", msg);

       } catch (JSONException e) {

           logger.error("生成JSON格式出错" + e);

           obj.put("flag", "0");

           obj.put("msg", "因为网络问题,数据处理失败");

       } finally {

            return obj.toString();

       }

}

 

2.action中的使用案例

    public ActionForwardadd(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) throws IOException,AppException {

       PrintWriter out = getPrintWriter(response);

       String docTitle = Tool.getDefaultValue(request, "docTitle", "");

       String uid = Tool.getDefaultValue(request, "uid", "");

       try {

           Long flag1 = WeiboWidgetDao.add(docTitle, uid);

           Long flag2 = WeiboWidgetDao.addRel(docTitle, uid);

           if (flag1 != null && flag2 != null) {

                responseStr(out, createJsonObject("1", "加入成功!"));

                WeiboWidgetDao.updateCache("doc", docTitle); // 更新词条缓存

           } else {

                responseStr(out, createJsonObject("0", "加入词条微博失败!"));

           }

       } catch (Exception e) {

           logger.debug("加入词条微博失败:" + e);

           responseStr(out,createJsonObject("0", "加入词条微博失败,发生异常!"));

       }

       return null;

    }

 

3.js中的使用案例

 

保存

function save() {

       // 保存前验证

       var docTitle = $("#win_docTitle").val();

       var uid = $("#win_uid").val();

       if (docTitle != "" && uid != "") {

              $.ajax({

                     dataType: ‘json‘,

                     type: ‘POST‘,

                     url: ‘/weiboWidget.do‘,

                     data: {

                            ‘action‘ : $("#win_action").val(),

                            ‘id‘ : $("#win_id").val(),

                            ‘docTitle‘ : $("#win_docTitle").val(),

                            ‘uid‘ : $("#win_uid").val(),

                     },

                     success : function(data) {

                            if (data.flag == 1) {

                                   alert(data.msg);

                                   window.location.href= "/weiboWidget.do?action=show";

                            }else {

                                   alert(data.msg);

                            }

                            return false;

                     },

                     error: function() {

                            alert("因为网络问题,保存数据失败!");

                            return false;

                     }

              });

       }else {

              alert("词条名和微博UID不能为空!");

              return false;

       }

}

 

删除

 

/**

 * 批量删除操作

 *

 */

function deleteData() {

       var idList =document.getElementsByName("id_list");

       var ids = "";

       var docTitles = "";

       // 检查是否选择内容

       for (i = 0; i < idList.length;i++) {

              if(idList[i].checked) {

                     var temp =idList[i].value.split(";");

                     ids+= temp[0] + ",";

                     docTitles+= temp[1] + ",";

              }

       }

       if (ids == "") {

              alert("请选择纪录!");

       }else {

              $.post("/weiboWidget.do?action=delete&" + new Date(), {

                     ‘ids‘ : ids,

                     ‘docTitles‘ : docTitles

              },function(data) {

                     window.location.href= "/weiboWidget.do?action=show";

                     return false;

              });

       }

}


转载请指明:http://blog.csdn.net/yangkai_hudong

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。