Skip to content
Snippets Groups Projects
Commit 460e1d1b authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#728 - fix access to request attributes:

Due to changes in spring boot 3 request attributes are no longer exposed to freemarker. Therefore, all needed attributes must be copied to model attributes
parent 518ae729
No related branches found
No related tags found
No related merge requests found
Pipeline #7078 passed
......@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment