• 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

  • 相关阅读:
    TextView中文文档
    低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
    低版本系统兼容的ActionBar(五)修改ActionBar的全套样式,从未如此简单过
    低版本系统兼容的ActionBar(四)添加Tab+添加自定义的Tab视图+Fragment
    低版本系统兼容的ActionBar(三)自定义Item视图+进度条的实现+下拉导航+透明ActionBar
    低版本系统兼容的ActionBar(二)ActionProvider+分离式ActionBar+分离式的ActionMode
    Android中获取屏幕长宽的方法
    低版本系统兼容的ActionBar(一)设置颜色+添加Menu+添加ActionMode
    用PopupWindow实现弹出菜单(弹出的菜单采用自定义布局)
    Android Studio 下载地址
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4198455.html
Copyright © 2020-2023  润新知