前提
画面の表に入力された値をサーバーへ連携しています。
実現したいこと
項目数5の表を配列で受け渡ししたいです。
発生している問題・エラーメッセージ
画面では、項目数5・行数3の配列で保持できていますが、
Java側に渡ると項目数1・行数15の配列になってしまいます。
該当のソースコード
HTML
1Javaへ受け渡しする項目の定義 2<input type="hidden" name="nameList" id="nameList"> 3 4表の定義 5var hot = new Handsontable(document.getElementById('nametable'){ 6~略~ 7}
JavaScript
1送信ボタン押下時のJavaScript 2// サーバーへ渡す配列を初期化 3var nameViewList = []; 4//表の行数分繰り返す 5for (var i = 0; i < hot.countRows(); i++{ 6 7 // 表の1行を変数へ設定 8 var nameRow = hot.getDataAtRow(i); 9 // 各種チェック後、サーバーへ渡す配列へPush 10 nameViewList.push(nameRow); 11} 12document.getElementById('nameList').value = nameViewList; ★1 13$('#testForm').attr('action', '[(@{/TEST001/update/})]'); 14$('#testForm').attr('target', 'DUMMY'); 15$('#testForm').submit();
Java
1//Java側Formファイル 2private List<String[]> nameList;
Java
1//Java側Controllerファイル 2@PostMapping("update") 3String update(@ModelAttribute @Validated TESTForm testForm, BindingResult result, Model model, HttpSession session) throws Exception { 4 5 model.addAttribute("TESTForm", testForm); 6 List<String[]> nameList = testForm.getNameList(); ★2
試したこと
★1の時点で確認すると、項目数5・行数3になっていますが
★2の時点では項目数1(NULL値が設定されている場合は項目数0)・行数15となってしまっています。
Javaソース内で詰め替えれば済むのでしょうが、根本的な解決が知りたいです
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/21 02:49
2022/11/21 03:15