Проблема в обработке представления в контроллере после отправки формы
Проблема в обработке представления в контроллере после отправки формы. Объект сохраняет конвертируемое значение но не сохраняет конвертируемую валюту. Вопрос в следующем, проблема в коде формы представления, или в том что необходимо каким то образом обрабатывать полученные значения валюты в контролере. Ниже представлена отображаемая страница.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Конвертер валют</title>
</head>
<body>
<h1> Конертер валюты </h1>
<form method="POST" th:object="${ConvertedValue}">
<li> <label> <select>
<div th:each="currency : ${currencies}">
<option th:value = "${currency.value}" th:text="${currency.charCode}"></option>
</div>
</select> <input type = "text" th:field="*{valueToConvert}"></label></li>>
<li> <label> <select>
<div th:each="currency : ${currencies}">
<option th:text="${currency.charCode}"></option>
</div>
</select> <input type = "text" th:field="${ConvertedValue.convertResult}"></label></li>>
<p><input type="submit" value="Конвертировать"></p>
</form>
</body>
</html>
Код класса контроллера
@Slf4j
@Controller
@RequestMapping("/convert")
public class CurrencyConverterController {
@GetMapping
public String showCurrency(Model model) {
List<Currency> currencies = new ArrayList<>();
currencies.add(new Currency("R01235",840,"USD",1,"DollarUSA",73.2392));
currencies.add(new Currency("R01239",978,"EUR",1,"EuropeanEURO", 87.4037));
currencies.add(new Currency("R01270",356,"INR",100,"IndianRUPI", 97.8754));
currencies.add(new Currency("R01230",282,"RU",1,"RussianMONEY",1));
model.addAttribute("currencies",currencies);
model.addAttribute("ConvertedValue", new ConvertedValue(0.0,0.0,currencies));
return "convert";
}
@PostMapping
public String convertMoney(@ModelAttribute ConvertedValue convertedValue) {
// System.out.println(convertedValue.getCurrenciesExc());
System.out.println(convertedValue.toString());
log.info("Converted value",convertedValue);
return "redirect:/convert";
}
}
Ответы (1 шт):
Автор решения: alexander
→ Ссылка
Я не знаю, как это реализовано в thymeleaf, но нужно в select у нужной валюты выставить атрибут selected.