diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java index e5c8749e90d394f78802cab96282832f5b437f44..f868c4ed1bb6da55e37698259f3dead8e89218d9 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java @@ -79,10 +79,11 @@ public class TransactionImportController extends BaseController { request.removeAttribute(RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION); - if(request.getAttribute(RequestAttributeNames.CSV_IMPORT, RequestAttributes.SCOPE_SESSION) == null) - { - model.addAttribute(RequestAttributeNames.CSV_IMPORT, new CsvImport(null, ";", StandardCharsets.UTF_8.name(), 0)); - } + // copy session attributes to model, otherwise they are not available in freemarker + fillModelAttributeFromRequestSessionOrDefault(model, RequestAttributeNames.CSV_IMPORT, request, new CsvImport(null, ";", StandardCharsets.UTF_8.name(), 0)); + fillModelAttributeFromRequestSession(model, RequestAttributeNames.CSV_ROWS, request); + fillModelAttributeFromRequestSession(model, RequestAttributeNames.CSV_TRANSACTIONS, request); + fillModelAttributeFromRequestSession(model, RequestAttributeNames.ERRORS_COLUMN_SETTINGS, request); final Object bindingResult = request.getAttribute(RequestAttributeNames.ERROR_UPLOAD, RequestAttributes.SCOPE_SESSION); if(bindingResult != null) @@ -97,6 +98,28 @@ public class TransactionImportController extends BaseController return ReturnValues.TRANSACTION_IMPORT; } + private void fillModelAttributeFromRequestSessionOrDefault(Model model, String attributeName, WebRequest request, Object defaultValue) + { + final Object attribute = request.getAttribute(attributeName, RequestAttributes.SCOPE_SESSION); + if(attribute == null) + { + model.addAttribute(attributeName, defaultValue); + } + else + { + model.addAttribute(attributeName, attribute); + } + } + + private void fillModelAttributeFromRequestSession(Model model, String attributeName, WebRequest request) + { + final Object attribute = request.getAttribute(attributeName, RequestAttributes.SCOPE_SESSION); + if(attribute != null) + { + model.addAttribute(attributeName, attribute); + } + } + @PostMapping("/upload") public String upload(WebRequest request, @ModelAttribute("CsvImport") CsvImport csvImport,