2015-01-19 3 views
0

У меня есть html-форма, содержащая скрытый ввод. Я хочу заполнить этот ввод json string (возможно, длинную строку), а затем получить его через @RequestParam в моем контроллере. вот мой Javascript код (Обратите внимание, что форма генерации с помощью каких-либо событий на странице):Spring - сохранить длинную строку json в html скрытом поле

var filters = JSON.stringify("some data"); 
//I used console.log for print out the filters and this is ok. 

$("body").append('<form target="_blank" id="excel" action="/company/excel" method="POST"></form>'); 
$('<input type="hidden" name="filter" value="'+filters+'" />').appendTo("#excel"); 
$("#excel").submit(); 

И это мое действие:

@RequestMapping(value = "company/excel", method = RequestMethod.POST) 
public void companyExcelExport(@RequestParam String filter) throws IOException{ 
    System.out.println(filter); 
} 

, когда действие выполняется, просто «{», напечатанные в консоль netbeans. В чем проблема?

Я console.log(filters) и вернула меня:

{"search":false,"nd":1421663503100,"rows":10,"page":1,"sidx":"","sord":"asc","pageGridColModelList":[{"name":"id","index":"id","width":150,"sortType":"integer","hidden":true,"hiddenlg":true,"stype":"text","searchoptions":{"stype":"integer","sopt":["eq","ne","lt","le","gt","ge","bw","bn","in","ni","ew","en","cn","nc"]}},{"name":"name","index":"name","width":250,"sortType":"string","hidden":false,"hiddenlg":false,"stype":"text","searchoptions":{"stype":"text","sopt":["eq","ne","lt","le","gt","ge","bw","bn","in","ni","ew","en","cn","nc"]}},{"name":"createAt","index":"createAt","width":420,"sortType":"date","hidden":false,"hiddenlg":false,"stype":"text","searchoptions":{"stype":"integer","sopt":["eq","ne","lt","le","gt","ge","bw","bn","in","ni","ew","en","cn","nc"]}}]} 
+0

Что такое клиентское содержимое 'filters' на почте? –

+0

Он содержит правильное значение json. – hamed

+0

Вы проверили это? Пожалуйста, разместите первые несколько символов содержания. –

ответ

0

Я изменил:

$('<input type="hidden" name="filter" value="'+filters+'" />').appendTo("#excel"); 

в:

$('<input type="hidden" name="filter" id="filter" />').appendTo("#excel"); 
$("#filter").val(filters); 

И теперь это работает.

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