如果用户不在 Thymeleaf 中发送输入,我如何设置默认值
How can I set a default value if a user doesn't send an input in Thymeleaf
现在 - 我的 html 上有一个输入字段,当页面加载时,Thymeleaf 会在其中插入一个“0”。如果出于某种原因删除了“0”并提交了表单 - 我会收到 NumberFormatException。
如果在输入表单中没有输入任何内容的情况下提交表单,有没有办法自动将其设置为“0”?
这是我的 html 表格(我的 th:object 是 ${npf})
<div class="col-md-2 form-outline">
<input class="form-control" type="text" id="addConcealed" th:field="${npf.numConcealed}" placeholder="C" />
<label class="form-label text-muted" for="addConcealed">Concealed</label>
</div>
这是我得到的错误:
[Failed to convert property value of type 'java.lang.String' to required type 'long' for property 'numConcealed'; nested exception is java.lang.NumberFormatException: For input string: ""]
无论如何,如果输入字段中没有任何内容,我可以将其默认设置为 0,而不是出错并让用户输入数字?
有几种方法可以解决这个问题:
将变量 numConcealed
变成 Long
而不是 long
。当他们擦除字段时处理空值。
使用 JavaScript,捕获提交,如果他们提交空白文本字段,只需将字段值更改回 0。
创建您自己的 String
到 int
Converter 并为该字段注册。应该以与普通转换器(无论是什么)相同的方式工作,除了它会 return 0 for nulls.
现在 - 我的 html 上有一个输入字段,当页面加载时,Thymeleaf 会在其中插入一个“0”。如果出于某种原因删除了“0”并提交了表单 - 我会收到 NumberFormatException。
如果在输入表单中没有输入任何内容的情况下提交表单,有没有办法自动将其设置为“0”?
这是我的 html 表格(我的 th:object 是 ${npf})
<div class="col-md-2 form-outline">
<input class="form-control" type="text" id="addConcealed" th:field="${npf.numConcealed}" placeholder="C" />
<label class="form-label text-muted" for="addConcealed">Concealed</label>
</div>
这是我得到的错误:
[Failed to convert property value of type 'java.lang.String' to required type 'long' for property 'numConcealed'; nested exception is java.lang.NumberFormatException: For input string: ""]
无论如何,如果输入字段中没有任何内容,我可以将其默认设置为 0,而不是出错并让用户输入数字?
有几种方法可以解决这个问题:
将变量
numConcealed
变成Long
而不是long
。当他们擦除字段时处理空值。使用 JavaScript,捕获提交,如果他们提交空白文本字段,只需将字段值更改回 0。
创建您自己的
String
到int
Converter 并为该字段注册。应该以与普通转换器(无论是什么)相同的方式工作,除了它会 return 0 for nulls.