Как я могу проверить композиционные отношения в Thymeleaf / Spring Boot. У меня есть простой класс FundTrf, который "имеет" класс данных. Проблема заключается в том, что когда я проверяю входные данные формы, поля, относящиеся к классу FundTrf, проверяются, но поля, относящиеся к классу данных, не проверяются. Нужно ли делать дополнительные ставки между этими классами? Ниже я попробовал.
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>HNB CEFT | Test Bed</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Form</h1>
<form action="#" th:action="@{/ceft/fundTrf}" th:object="${fundTrf}" method="post">
<table>
<tr><td>Version </td><td><input type="text" th:field="*{version}" /></td>
<td th:if="${#fields.hasErrors('version')}" th:errors="*{version}">Version Error</td>
</tr>
<tr><td>Bank Code </td><td><input type="text" th:field="*{data.dest_bank_code}" /></td>
<td th:if="${#fields.hasErrors('data.dest_bank_code')}" th:errors="*{data.dest_bank_code}">Bank Code Error</td>
</tr>
<tr><td>Amount </td><td><input type="text" th:field="*{data.amount}" /></td>
<td th:if="${#fields.hasErrors('data.amount')}" th:errors="*{data.amount}">Amount Error</td>
</tr>
</table>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>
</body>
</html>
Ниже приведен мой класс контроллера.
@Controller
public class Hello implements WebMvcConfigurer{
@GetMapping("/ceft/welcome")
public String welcomeForm(Model model) {
model.addAttribute("fundTrf", new FundTrf());
return "welcome";
}
@PostMapping("/ceft/fundTrf")
public String ceftTransaction(@ModelAttribute @Valid FundTrf fundTrf, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "welcome";
} else {
return "result";
}
}
}
Ниже мой класс FundTrf
public class FundTrf {
@NotEmpty
private String version;
private Data data;
..Getters and Setters
}
А это класс Data.
public class Data {
@NotEmpty
private String reqId;
@NotEmpty
private String frm_hnb_account;
@NotEmpty
private String dest_bank_account;
@NotEmpty
private String benificiary_name;
@NotEmpty
private String dest_bank_code;
@NotEmpty
@Size(min = 2, max = 30)
private String amount;
..Getters and Setters
}
Проблема в том, что, когда я отправляю форму с пустыми значениями, появляется сообщение «Версия не должна быть пустой», но проверка суммы не работает. Что я тут не так делаю?