为了账号安全,请及时绑定邮箱和手机立即绑定

th: 在 Thymeleaf 中禁用的对象

th: 在 Thymeleaf 中禁用的对象

POPMUISE 2021-10-06 11:00:59
我有一个基本的 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 对象中,我有:@NotNullprivate 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;        }我也尝试使用只读,但它没有出现在选择对象上
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

readonly如果您希望值被发送而您不希望用户能够编辑它,您应该选择使用。

使用disabled和之间存在细微差别readonly

比较

  • readonly 项目不可编辑,但将在提交后发送。

  • disabled 项目不可编辑,一旦提交就不会发送。

  • readonly项目是可聚焦的,而disabled一个则不是。


查看完整回答
反对 回复 2021-10-06
?
Qyouu

TA贡献1786条经验 获得超11个赞

使用这种方法:

当 select 元素被禁用时,添加一个隐藏元素,为表单设置一个假发票,这样 saveWallet 方法将获得一个带有非空假发票的 walletPayload。


查看完整回答
反对 回复 2021-10-06
  • 3 回答
  • 0 关注
  • 298 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信