afunms

          My Software,My Dream—Forge a more perfect NMS product.

          spring3 json ajax

          spring3---json
          在applicationContext.xml中加入

          <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">   
                  
          <property name="messageConverters">   
                      
          <util:list id="beanList">   
                          
          <ref bean="mappingJacksonHttpMessageConverter" />   
                      
          </util:list>   
                  
          </property>   
              
          </bean>   

          <bean id="mappingJacksonHttpMessageConverter"   
                  class
          ="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />

          這樣在action方法加返回bean或map,spring3會把它處理成json格式。如:



          @Controller 
          public class JsonTestController 
              @RequestMapping(
          "/getJsonList"
              @ResponseBody 
              
          public List<ItemTest> searchItemsList() 
              

                  ItemTest item 
          = new ItemTest(); 
                  item.setItemnum(
          "123"); 
                  item.setItemDesc(
          "123desc"); 

                  ItemTest item1 
          = new ItemTest(); 
                  item1.setItemnum(
          "456"); 
                  item1.setItemDesc(
          "456desc"); 
                  List
          <ItemTest> list = new ArrayList<ItemTest>(); 
                  list.add(item); 
                  list.add(item1); 
                  
          return list; 
              }


          }


          訪問getJsonList.do返回的就是json形式的數(shù)據(jù),注意要加上 @ResponseBody

          ================================================

          spring3---ajax---json
          網(wǎng)上搜索到一般都是這樣:

           

          $(function(){
              $(
          "#doImport").click(
                 
          function(){
                    
          var importInfo = $("#importInfo").serializeObject();
                    $.ajax(
          {
                        url:
          "${base}cmb/doImport.do",
                        contentType :
          "application/json",
                        cache:
          false,
                        type:
          "POST",
                        data:JSON.stringify(importInfo),
                        dataType:
          "json",
                        success: 
          function(data){
                         $('#result').val(data.message)
                         alert(data.message);       
                        }
          ,
                        error:
          function(){
                            alert(
          "失敗");
                        }

                   }
          );
              }
          ); 
          }
          );

          我覺得這個方法寫得太復(fù)雜了,于是改了它:

          function doImport(){    
              $.ajaxSetup(
          { cache:false });

              
          var data = {excelFileName:$("#excelFileName").val(),
                          sheetName:$(
          "#sheetName").val(),
                          tableName:$(
          "#tableName").val(),
                          startRow:$(
          "#startRow").val(),
                          startCol:$(
          "#startCol").val()}

              
              $.getJSON(
          "${base}cmb/doImport.do",data,function(form){
                         $(
          "#result").val(form.message);
                         alert(form.message); }
          );
          }

          action:

          @RequestMapping("/cmb/doImport.do")
              public @ResponseBody Map
          <String,String> doImport(HttpServletRequest request, ModelMap model){
                  System.out.println(
          "===doImport===>>" + DateUtil.getCurrentDateTime());
                  String excelFileName 
          = request.getParameter("excelFileName");
                  String sheetName 
          = request.getParameter("sheetName");        
                  String tableName 
          = request.getParameter("tableName");
                  
          int startRow = Integer.parseInt(request.getParameter("startRow"));        
                  
          int startCol = Integer.parseInt(request.getParameter("startCol"));    
           
                  System.out.println(
          "excelFileName=" + excelFileName);
                  System.out.println(
          "sheetName=" + sheetName);
                  System.out.println(
          "tableName="+tableName);
                  System.out.println(
          "startRow="+startRow);
                  System.out.println(
          "startCol="+startCol);
                  
                  Map
          <String,String> result = new HashMap<String,String>(); 
                  result.put(
          "message""導(dǎo)入成功!");

                  
          return result;
              }
              

          注意以下幾點:
          1. ajax必須清緩存:$.ajaxSetup({ cache:false });

          2. 將表單的數(shù)據(jù)組成json格式:
          var data = {excelFileName:$("#excelFileName").val(),
                 sheetName:$("#sheetName").val(),
                 tableName:$("#tableName").val(),
                 startRow:$("#startRow").val(),
                 startCol:$("#startCol").val()};
          # XX與表單組件中的ID對應(yīng),如
          <input type="hidden" id="excelFileName" value="${excelFileName}" />

          3.表單上必須有一個地方能存放返回值:
          <input type="hidden" id="message" />
          action中的返回值為json格式, 
          $("#result").val(form.message) 這句話將返回值中的result屬性取出賦給表單中的message

          posted on 2011-10-31 10:29 afunms 閱讀(954) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          News

          留言簿(18)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 兖州市| 城市| 巴林左旗| 子长县| 金寨县| 赤峰市| 石渠县| 岫岩| 马鞍山市| 兴业县| 读书| 龙江县| 福鼎市| 招远市| 蒙阴县| 韩城市| 武清区| 鸡东县| 土默特左旗| 秀山| 喀什市| 九台市| 客服| 永兴县| 石渠县| 崇明县| 沿河| 宁都县| 江口县| 阜南县| 江北区| 吕梁市| 凤冈县| 宁河县| 怀远县| 舒城县| 郸城县| 东源县| 洛隆县| 年辖:市辖区| 蓝山县|