Вы можете сделать это разными способами.
Но сначала давайте сократим аннотацию метода публикации с:
@RequestMapping(method = RequestMethod.POST, value = "/{id}/payments")
до
@PostMapping("/{id}/payments")
Я бы также изменил переменную id
на studentId
, чтобы сделать ее более понятной для следующего человека, читающего ваш код.
Теперь включите переменную как скрытый тип ввода в тегах формы:
<input type="hidden" name="studentId" th:value="${student.id}">
Затем вы можете
a) Добавить свойство String studentId
в свой класс PaymentRecord
. Затем в методе публикации вы можете вызвать paymentRecord.getStudentId()
;
или
б) Добавьте параметр запроса для studentId
в свой метод, сопоставленный с @PostMapping
. Таким образом, ваша подпись метода может иметь @RequestParam(String studentId)
. В этом случае значение studentId
будет полностью доступно пользователю.
или
c) Используйте @RequestBody
и сопоставьте значения с bean-компонентом. Вы можете прочитать этот топи c дальше и посмотреть на некоторую предысторию с этим вопросом .