2014-02-25 67 views
1

我想做一個連接的組合框,爲此我在視圖中使用了ajax和javascript,問題是控制器接收到數據並捕獲結果但是當返回踢我錯誤不能返回地圖,我使用彈簧mvc。spring mvc error ajax [object Object]返回時@ResponseBody映射

我已經有JSON的2個庫,這不是我想的問題..

JSP

....

 jQuery(document).ready(function() { 

     var contexPath = "<%=request.getContextPath()%>"; 
     $('#anios').change(
      function(e){ 
       if(jQuery(this).val() != "-1"){ 
        $('#eventos').find('option').remove().end().append(
         '<option value="-1">--Select state--</option>'); 
        e.preventDefault(); 
        var val = $(this).val(); 
        jQuery("#eventos").removeAttr("disabled"); 

        alert(val); 
        //$('#othstate').val('').hide(); 
        $.ajax({ 
         type : "POST", 
         url : contexPath + '/eventosPublicados.html', 
         dataType : 'json', 
         data : { 
          idAnio : val 
         }, success : function(data){ 
          //alert(data.lstEventos); 
          //showEventos(data.lstEventos); 
          // $('#states').html(data.lstStates); 
         }, error : function(e) { 
          alert('Error: '+ e); 
         } 
        }); 
       } else { 
        $("#eventos").attr("disabled", "disabled"); 
        $('#eventos').find('option').remove().end().append(
        '<option value="-1">--- Seleccione ---</option>'); 
       } 
      }); 

      function showEventos(data) { 
       for (var i = 0, len = data.length; i < len; ++i) { 
        var msajax = data[i]; 
        $('#eventos').append(
        "<option value=\"" +msajax.idEvento + "\">" + msajax.nombre + "</option>"); 
       } 
      } 

     }); 
    </script> 

..

控制器

@RequestMapping(value= "/eventosPublicados", headers = "Accept=application/json,application/xml") 
public @ResponseBody Map<String, ? extends Object> listaEventosPublicados(@RequestParam(value="idAnio", required=true) String anio) throws Exception{ 
    Map<String,Object> model = new HashMap<String, Object>(); 

    List<Evento> eventos = this.eventoService.obtenerEventosPublicadosxAnio(Integer.parseInt(anio)); 
    System.out.println("evento size: " + eventos.size()); 

    model.put("lstEventos", eventos); 

    return model; 
} 

如果我從列表中檢索數據,這意味着如果值「anio」到達,則問題將返回。

請幫我翻一下

回答

1

想要這樣嗎?你在哪裏解析json的「eventos」?

@RequestMapping(value= "/eventosPublicados", headers = "Accept=application/json,application/xml") 
@ResponseBody 
public String listaEventosPublicados (@RequestParam(value="idAnio", required=true) String anio)){ 
     // ..... Parsing "eventos" to json 
} 

要解析JSON https://code.google.com/p/google-gson/將是有益的

相關問題