【问题标题】:How to change input value with Thymeleaf?如何使用 Thymeleaf 更改输入值?
【发布时间】:2021-06-02 08:08:32
【问题描述】:

我正在构建 Spring 应用程序并遇到了问题。 我上课了@Entity Balance 它有字段private Long assets; 在 html 表单中,我这样做是为了连接这个字段和输入块:

<input type="text" th:field="${balance.assets}">

Assest 字段以千为单位存储金额(如 123456 = 123 456 000$)

一切正常,但现在我需要打印和读取数百万的输入,但存储数以千计。例如,用户类型 123,456 = 123 456 000$,在 Balance 中应该存储 123456。我真的不想将 assets 字段类型从 Long 更改为 Double。要打印数百万,我可以这样做:

<span th:if="${balance.assets}" th:text="${#numbers.formatDecimal(balance.assets / 1000.0, 0, 'WHITESPACE', 3, 'DEFAULT')}"></span>

我不知道怎么读几百万。

如何在html文件中制作?

谢谢

【问题讨论】:

  • 要么在发送时使用 javascript 删除最后一位数字,要么在收到这些数字时在控制器中删除它们。

标签: java html spring spring-mvc thymeleaf


【解决方案1】:

Thymeleaf 是服务器端模板引擎,用于在服务器端生成 html 页面,然后发送到客户端浏览器。您可以在 thymeleaf 中修改显示的值,但在客户端没有 thymeleaf,只有生成的 html 页面。如果您想在用户提交表单后修改值,您只能使用:

  1. javascript - 通过表单提交事件,它将在发送表单之前编辑值,
  2. javascript - 通过添加值以千为单位的隐藏字段,并在更改事件以在更改以百万为单位的可见输入时更新它
  3. spring控制器-表单提交后转换值,可以添加额外的requestparam@RequestParam(name = "amountInMillions") Double amountInMilions 只是将它输入控制器到您的余额实体balance.assets = amountInMilions*1000

我建议使用第 3 个选项,因为它对客户端的依赖性较小,尤其是第 1 个解决方案如果在客户端浏览器中禁用 js 可能会导致问题。

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 2020-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多