2015-01-20 5 views
0

Я ищу способ заполнения данных внутри данных, но данные не выходят. Я покажу свои коды шаг за шагом.ajax + json + jquery + datatables + spring mvc

Это находится внутри контроллера с данными, содержащими манекены.

@RequestMapping(value="/claim/prApplication",method=RequestMethod.POST) 
public @ResponseBody DataTablesJsonModel getDataTableSelfClaim(@RequestBody String employeeId){ 
    HraPrmClaimApplication toShow=new HraPrmClaimApplication(); 
    toShow.setApplicationId((Integer)1); 
    toShow.setDate("2015.01.01"); 
    toShow.setTotalAmount((double)200); 
    toShow.setDocument("sample.pdf"); 
    toShow.setNote(""); 
    DataTablesJsonModel toReturn=new DataTablesJsonModel(); 
    toReturn.setAaData(toShow); 
    System.out.print(toReturn); 
    return toReturn; 
} 

Это внутри моей страницы JSP.

function loadSelfTable(){ 
      return initSingleSelectDataTable("#selfTable",null,null,"/",true, 
      { 
       "sDom": "<'row'<'col-xs-6'i><'col-xs-6'f>r>t<'row'<'col-xs-6'i><'col-xs-6'p>>", 
       "sPaginationType": "bootstrap", 
       "bPaginate": false, 
       "bProcessing": true, 
       "sAjaxSource": "${pageContext.request.contextPath}/hra/prm/claim/prApplication",  
       "fnServerData": function (sSource, aaData, fnCallback) { 
        $.ajax({ 
          dataType: 'json', 
          type: "POST", 
          url: sSource, 
          success:function(result){ 
           if (result.aaData.code != null && result.aaData.code != '') { 
            $('#errorMsgPanel > div > span').text(result.aaData.message); 
            $('#errorMsgPanel').css("display", "block"); 
            fnCallback({aaData:[]}); 
           } 
           else {                   
            fnCallback(result); 
            alert(JSON.stringify(result)); 
           } 
         }, 
         error: function(jqXHR, textStatus, errorThrown) { 
          alert('<fmt:message key="ER0996" bundle="${messageBundle}"/>' + " (textStatus: " + textStatus + " errorThrown: " + errorThrown + " jqXHR.status: " + jqXHR.status + ")"); 
         } 
        }); 
       }, 
       "aoColumns":[ 
           {"mDataProp":"applicationId"}, 
           {"mDataProp":"appDate"}, 
           {"mDataProp":"amount"}, 
           {"mDataProp":"status"}, 
           {"mDataProp":"document"}, 
           {"mDataProp":"note"}, 
          ], 
       "aaSorting": [], 
      }); 

     } 

$(document).ready(function(){ 

       loadSelfTable(); 

     }); 

Моя проблема в том, когда я предупреждаю результат, данные отображаются как строка. Но данные не заполняются внутри таблицы. Помогите мне, если у вас есть идеи, как это сделать.

ответ

0

Put JSON.parse (результат) вместо JSON.stringify (результат)

Вы возвращаетесь только результат. Проверьте свой метод контроллера, который генерирует «application/json», иначе конвертируйте вашу строку в объект json.

также изменится, как показано ниже:

@RequestMapping(value="/claim/prApplication",method=RequestMethod.POST, produces="application/json") 
+0

Благодарим Вас за ответ, но до сих пор это один не делает мой стол Заполнить. :( – RiceBunny

+0

Только изменение Запрос Сопоставление ничего не меняет, если оно не работает, измените функцию fncallback с помощью fnCallback (JSON.parse (result)); – Nimesh

+0

Могу ли я посмотреть ваш initSingleSelectDataTable, поскольку вы не указали инициализацию типа данных, например : $ ('# пример') DataTable();. – Nimesh

Смежные вопросы