У меня есть базовое приложение SpringBoot 2.0.5.RELEASE.Используя Spring Initializer, JPA, встроенный Tomcat, шаблонизатор Thymeleaf и пакет в качестве исполняемого файла JAR.
У меня есть объект select, который доступен только для чтения,
<select id="selectInvoiceId" th:field="*{invoice}" th:disabled="${resto.id != null}" >
<option value="0">PLEASE SELECT AN INVOICE</option>
<option th:each="invoice : ${invoices}"
th:value="${invoice.id}"
th:text="${invoice.symbol}">
</option>
</select>
в контроллере, который у меня есть
@RequestMapping(value = { "/save" }, method = RequestMethod.POST)
public String saveWallet(@Valid @ModelAttribute("wallet") WalletPayload walletPayload,
BindingResult bindingResult) {
..
}
и в объекте WalletPayload у меня есть:
@NotNull
private Invoice invoice;
тогда я всегда получаю ошибку при проверке, потому что счет-фактура является нулевым, я хотел бы знать, есть ли обходной путьдля объектов только для чтения
Я пробовал это, но у меня все еще есть ошибка:
@RequestMapping(value = { "/save" }, method = RequestMethod.POST)
public String saveWallet(@Valid @ModelAttribute("wallet") WalletPayload walletPayload,
BindingResult bindingResult) {
LOG.debug("WalletPayload walletPayload [ " + walletPayload + " ]");
if (walletPayload.getId() != null) {
Invoice fakeInvoine = new Invoice("fake-inv");
fakeInvoice.setId((long)-1);
walletPayload.setInvoice(fakeInvoice);
}
if (bindingResult.hasErrors()) {
return serverContextPath + WALLET_LIST_VIEW_NAME;
}
Я также пытался использовать только для чтения, но он не появляется в качестве опции на выборкеобъект