我試圖從客戶端發送一些數據到服務器,並將其處理成文件下載。 我正在使用一個簡單的HTML表單,因爲我想初始化一個文件下載(而不是AJAX)。 其中一個表單域是一個項目數組。 (另外兩個是名稱和說明字符串)。 我在提交表單之前將此字段序列化爲字符串(JSON.stringify)。在春天處理一個包含項目數組的表單帖子MVC
在服務器端,我嘗試了一百萬種技術(@ModelAttribute與@RequestBody,不同的jackson映射bean配置)將其轉換爲單一類型或三種不同的類型(String + String + List/Array)。
我發現的例子只適用於AJAX ... 任何人都可以提供一個工作示例或描述嗎?
=======
更新: 我已經JSON.stringify-ING的收集和傳遞它的輸入之一, 並在服務器端我實現了一個解決辦法:
@RequestMapping(method = RequestMethod.POST, value = "exportSectionsToExcel")
public HttpEntity<byte[]> createExcelWorkBook(@ModelAttribute ExportSectionsListForm exportSectionsListForm) {
Section[] sectionObjects = gson.fromJson(exportSectionsListForm.getSections(), Section[].class);
...
與僅含有ExportSectionsListForm對象字符串:
public class ExportSectionsListForm {
private String name;
private String url;
private String rssUrl;
private String sections;
...
(omitting ctor, getters and setters)
另外,我發現這種有前途的鏈接: http://viralpatel.net/blogs/spring-mvc-multi-row-submit-java-list/ 但沒有嘗試它 - 似乎我需要動態生成輸入元素才能工作,但它實際上可能是正確的解決方案。有沒有人試過這個?
請問您我的控制器代碼? – OQJF 2013-03-19 11:12:45
我嘗試了很多技巧 - 每個都會導致不同的問題,而且沒有任何工作 - 所以我正在尋找一個工作示例... – 2013-03-19 11:20:38
因爲我不在辦公室,所以無法提供我的代碼,但我建議您添加斷點到您的控制器方法,並檢查存儲在請求中的數據類型? – OQJF 2013-03-19 11:25:04