對於我們的grails應用程序,我編寫了一種方法,可以讓您上傳一個充滿聯繫人的CSV文件,並解析文件並創建聯繫人數據。我已經使用了自己的測試文件(硬編碼字段意味着什麼),並且效果很好。將數據從一個grails動作傳輸到另一個動作
但是當然,我不能像這樣硬編碼字段引用,所以我的下一步是向用戶顯示一個屏幕,讓他們將他們文件中的列映射到我們的數據庫字段(列A和B保存名稱,C列保存電子郵件等)。
我的問題:臨時存儲我在第一部分中提取的數據的最佳方式是什麼,所以它可以在第二部分結束時使用?一個領域類似乎是合乎邏輯的選擇,但我還沒有找到一個完美的方式來做到這一點。 Hibernate似乎不喜歡2D字符串數組,並且以OO方式實現它需要幾個域類(ImportedCsv,CsvRow)。對於這樣一個小而臨時的流程,有幾個頂級域名類可以接受嗎?
我是一個Grails新手,所以我不知道什麼是駭人的,什麼是優美的。你會怎麼做?
如果你不需要保留映射信息,爲什麼把它存儲在任何地方? 將參數保存在地圖中,以便您知道如何將數據映射到列。 – 2010-08-05 19:10:02
是的,但是如果我們不存儲CSV的數據,我們必須上傳並解析它兩次:一次提取標題,一次用用戶的選擇處理它。有點醜。 – 2010-08-05 19:16:33