У меня был вопрос относительно того, как настроить контроллер для изменения переменной через форму.В настоящее время я использую Thymeleaf для шаблонов, и я следовал документации Spring для настройки моего контроллера.
Прямо сейчас мой контроллер успешно создает новый экземпляр класса "Bill" всякий раз, когда делается запрос ...
@Controller
public class BudgetController {
@Autowired
private BillBook book;
@GetMapping("/")
public String billForm(ModelMap modelMap, Model model) {
model.addAttribute("bill", new Bill());
modelMap.put("billName", name);
return "home";
}
@PostMapping("/")
public String billSubmit(Model model, @ModelAttribute Bill bill) {
book.addToBillBook(bill);
return "redirect:/";
}
}
... и передает его в список в классе "BillBook ".
@Component
public class BillBook {
private List<Bill> billList;
private int paycheckTotal;
private int difference;
private int billTotal;
public BillBook() {
billList = new ArrayList<>();
paycheckTotal = 0;
difference = 0;
billTotal = 0;
}
public void addToBillBook(Bill bill) {
billList.add(bill);
}
public void setPaycheckTotal(int amount) {
paycheckTotal = amount;
}
public int getPaycheckTotal () {
return paycheckTotal;
}
Это делается каждый раз, когда пользователь вводит название счета в форму, которую я структурировал в Thymeleaf.
<h1>Form</h1>
<form action="#" th:action="@{/}" th:object="${bill}" method="post">
<p>Bill name <input type="text" th:field="*{name}" /></p>
<p>Bill amount <input type="text" th:field="*{amount}" /></p>
<p><input type="submit" value="Submit" /> <input type="reset"
value="Reset"/></p>
</form>
Я знаю, что до сих порНужно внести некоторые изменения, чтобы сумма также была включена, но сейчас это работает довольно хорошо.
Однако сейчас я хочу разрешить пользователю вводить в форму сумму зарплаты, которая должна храниться в переменной paycheckTotal в классе BillBook.Я хочу, чтобы это было константой, т. Е. Пользователь может отправить только одну зарплату, и каждый раз, когда он вводит новую зарплату, она перезаписывает предыдущую.
Из моего исследования я считаю, что это должно быть сделано черезаннотация @RequestParam.Возможно, что-то вроде этого?
public String billSubmit(Model model, @ModelAttribute Bill bill,
@RequestParam ("paycheckTotal") int paycheckTotal) {
Но я не уверен, как структурировать это в шаблоне Thymeleaf так, чтобы он сохранялся в переменной paycheckTotal.
Если кто-нибудь сможет мне показатькак это должно быть построено, было бы очень, очень важно.