zoukankan      html  css  js  c++  java
  • Ext.grid.EditorGridPanel保存

    用get方法传递编辑的数据会出现乱码,解决get乱码的方法就是encodeURI(param),然后在后台转码:

            String strJson =  new String(request.getParameter("param").getBytes("iso-8859-1"),"utf-8");  
            java.net.URLDecoder.decode(strJson, "UTF-8");

    下面是get方法传参代码:

    1、获取Ext.grid.EditorGridPanel的bbar添加保存按钮

     1 bbar:new Ext.PagingToolbar({
     2              emptyMsg:"没有数据",
     3              displayInfo:true,
     4              displayMsg:"目前显示第 {0} - {1} 条,共 {2} 条",
     5              store:store,
     6              pageSize:20,
     7              refreshText:"刷新列表",
     8              items:['-', {
     9                 text:'保存',
    10                 handler:function(){
    11                         var m = store.modified.slice(-1);  
    12                         var jsonArray = []; //定义修改后的JSON对象  
    13                     Ext.each(m, function (item) {
    14                             jsonArray.push(item.data);  
    15                     });   
    16                     var strJson = Ext.encode(jsonArray);
    17                     if (jsonArray.length == 0) {  
    18                             Ext.Msg.alert('提示', '没有对数据进行任何更改!');  
    19                         return;  
    20                     }else{
    21                         Ext.Msg.alert('提示', '保存!'); 
    22                         Ext.Ajax.request({  
    23                             url: '/s.do/servlet?tg=s&json='+ encodeURI(strJson), 
    24                             success: function (response) {  
    25                                 Ext.Msg.alert("提交成功", response.responseText); //必须返回json类型   context.Response.Write("{ success: true, errors:{} }");  
    26                             },  
    27                             failure: function (response) {  
    28                                 Ext.Msg.alert("提交失败", response.responseText); //必须返回json类型{ success: false, errors:{info: '错误了'} }  
    29                             } 
    30                         });  
    31                     }
    32                 }
    33             }]
    34          })
    get

    2、后台解析json

     1 String strJson =     new String(request.getParameter("json").getBytes("iso-8859-1"),"utf-8");  
     2         java.net.URLDecoder.decode(strJson, "UTF-8");
     3         System.out.println(strJson);
     4         JSONArray js=JSONArray.fromObject(strJson);
     5         JSONObject json = null;
     6         Iterator it=js.iterator();
     7           while(it.hasNext()){
     8               json=(JSONObject)it.next();
     9                String nbbm=json.getString("nbbm");
    10                int flag = json.getInt("flag");
    11           }
    get/servlet

     下面是post方式传参,推荐这种方法,无须转码:

     1         bbar:new Ext.PagingToolbar({
     2              emptyMsg:"没有数据",
     3              displayInfo:true,
     4              displayMsg:"目前显示第 {0} - {1} 条,共 {2} 条",
     5              store:store,
     6              pageSize:20,
     7              refreshText:"刷新列表",
     8              items:['-', {
     9                 text:'保存',
    10                 handler:function(){
    11                     var m = store.modified.slice(-1);  
    12                     var jsonArray = []; //定义修改后的JSON对象  
    13                     Ext.each(m, function (item) {//将修改后的行对象生成json对象  
    14                         jsonArray.push(item.data);  
    15                     });   
    16                     var strJson = Ext.encode(jsonArray);
    17                     if (jsonArray.length == 0) {  
    18                             Ext.Msg.alert('提示', '没有对数据进行任何更改!');  
    19                         return;  
    20                     }else{
    21                         Ext.Msg.alert('提示', '保存!'); 
    22                         Ext.Ajax.request({  
    23                             url: '/servlet/AccountManagement?action=save', 
    24                             success: function (response) {  
    25                                 Ext.Msg.alert("提交成功", response.responseText); //必须返回json类型   context.Response.Write("{ success: true, errors:{} }");  
    26                             },  
    27                             failure: function (response) {  
    28                                 Ext.Msg.alert("提交失败", response.responseText); //必须返回json类型{ success: false, errors:{info: '错误了'} }  
    29                             },  
    30                             params: { UpdateInfo: Ext.encode(jsonArray)}//参数使用 Ext.encode方法将JSON对象编码成字符串,传递到后台!!!!!!  
    31                         });  
    32                     }
    33                 }
    34             }]
    35          })
    post

    后台解析json:

     1 String strJson = request.getParameter("UpdateInfo");
     2 System.out.println(strJson);
     3 JSONArray js=JSONArray.fromObject(strJson);
     4 JSONObject json = null;
     5 Iterator it=js.iterator();
     6 while(it.hasNext()){
     7     json=(JSONObject)it.next();
     8     String nbbm=json.getString("nbbm");
     9     int flag = json.getInt("flag");
    10 }
    post/servlet
  • 相关阅读:
    Win(Phone)10开发第(7)弹,Extended Execution
    Win(Phone)10开发第(5)弹,本地媒体服务器的一些注意事项
    Win(Phone)10开发第(4)弹,HTTP 实时流播放 m3u8
    Win(Phone)10开发第(3)弹,简单的Demo程序网络请求json解析列表显示
    Win(Phone)10开发第(2)弹,导出APPX包并签名部署
    Win(Phone)10开发第(1)弹,桌面和手机的扩展API,还我后退键
    WP8里dll类库(SDK)实现多语言多主题
    Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路
    在继承中子类自动实现单例模式
    ansible---基础
  • 原文地址:https://www.cnblogs.com/zhutouying/p/3267230.html
Copyright © 2011-2022 走看看