th: 在 Thymeleaf 中禁用的对象

我有一个基本的 SpringBoot 2.0.5.RELEASE 应用程序。使用 Spring Initializer、JPA、嵌入式 Tomcat、Thymeleaf 模板引擎,并打包为可执行 JAR 文件。


我有一个只读的选择对象,


<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;

        }

我也尝试使用只读,但它没有出现在选择对象上

http://img3.mukewang.com/615d11820001afce07570468.jpg

POPMUISE
浏览 299回答 3
3回答

DIEA

readonly如果您希望值被发送而您不希望用户能够编辑它,您应该选择使用。使用disabled和之间存在细微差别readonly比较readonly&nbsp;项目不可编辑,但将在提交后发送。disabled&nbsp;项目不可编辑,一旦提交就不会发送。readonly项目是可聚焦的,而disabled一个则不是。

Qyouu

使用这种方法:当 select 元素被禁用时,添加一个隐藏元素,为表单设置一个假发票,这样 saveWallet 方法将获得一个带有非空假发票的 walletPayload。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java