Thymeleaf将字符串转换为数字

Thymeleaf将字符串转换为数字!
近期努力敲代码的时候遇到一个问题,某个字段在后端使用的是String存储,但是前端thymeleaf模板需要使用这个字段做数字加减,因为是字符串所以变成了字符串的相加(比如:'1'+'1'='11'),如果此时更改后端较为麻烦,还需要更改数据库,只能想办法转换一下。

网上查找没有相关资料且质量堪忧,所以自己写一篇文章希望可以帮助到有需要的人,特此记录。
问题截图:

代码截图:

起初以为Thymeleaf有提供Integer的内置供我们进行类型转换,但是找了一圈文档发现都没有此内置对象也没有相应的方法,最后苦苦琢磨总结了以下

三种解决方法:

第一种:

简单粗暴直接在后端实体类转换(偶尔使用没问题,多次建议使用第三种):

private String startRow;
public String getStartRow(){return startRow;} public Integer getStartRow(){
  return startRow!=null&&startRow.length>0?Integer.valueof(startRow):0;
}

前端使用 startRowNum 获取值

再查看结果发现显示已经正常了

第二种:

使用thymeleaf的内置对象#numbers.sequence()方法

该方法会生成一个数字数组返回,因为限制了起始数字和结束数字,所以只会返回长度为1的数组,再使用第一个元素相加即可(不太推荐,太麻烦且性能不好)

第三种:

直接在后端定义一个工具类,并托管到Spring容器中,前端使用${@MyUtils.toInteger()}调用方法即可(推荐使用此种方法,多次使用时还方便维护)
工具类:

package com.tension.common.utils;

import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils; @Component
public class MyIntegerUtils {   public static Integer toInteger(String str){
    if(StringUtils.hasLength(str)){
      return Integer.valueOf(str);
    }
    return 0;
  }
}

前端调用:

查看结果:

Thymeleaf将字符串转换为数字的更多相关文章

  1. 剑指Offer面试题:35.将字符串转换为数字

    一.题目:将字符串转换为数字 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不能使用atoi或者其他类似的库函数. 二.代码实现 (1)考虑输入的字符串是否是NULL.空字符 ...

  2. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  3. Swift3.0语言教程字符串转换为数字值

    Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...

  4. C语言中将字符串转换为数字的方法

    C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: # include <stdio. h># ...

  5. js字符串转换为数字 总结

    a. 将一个字符串转换为数字的一种缺少些技巧但是很清楚明白的方法就是:把Number()构造函数作为一个函数来调用:  var number = Number(string_value); b. pa ...

  6. JavaScript字符串转换为数字

    今天在工作中碰到了一个问题,要将字符串转换为数字,否则函数不能正常工作, 特地研究了下,写了2个函数,供大家参考,代码如下: /** * 将字符串转换为数字 * @param {Object} str ...

  7. Python不使用int()函数把字符串转换为数字

    Python不使用int()函数把字符串转换为数字 2018年05月21日 14:18:45 边缘ob边缘ob 阅读数:1035 https://blog.csdn.net/qq_33192555/a ...

  8. C语言把字符串转换为数字

    C当中有一些函数专门用于把字符串形式转换成数值形式. printf()函数和sprintf()函数 -->通过转换说明吧数字从数字形式转换为字符串形式: scanf()函数把输入字符串转换为数值 ...

  9. python:如何判断字符串中的内容是否都为数字并且把字符串转换为数字

    使用str.isdigit();有两种使用方法 str.isdigit('12345') =====>True str.isdigit('aaaaa')======>False 或者 '1 ...

随机推荐

  1. Pycharm新建文件时头部模板的配置方法

    方法

  2. Understanding C++ Modules In C++20 (2)

    Compiling evironment: linux (ubuntu 16.04)+ gcc-10.2. The post will focus on using export,import,vis ...

  3. 安装JDK,以及配置环境变量

    卸载JDK 删除Java的安装目录 删除JAVA_HOME 删除path下关于Java的目录 Java-version 安装JDK 使用浏览器搜索JDK,找到下载地址 同意协议 下载电脑对应的版本 双 ...

  4. 「NOI十联测」反函数

    30pts 令(为1,)为-1: 暴力枚举每个点为起始点的路径,一条路径是合法的当且仅当路径权值和为0且路径上没有出现过负数. 将所有答案算出. 100pts 使用点分治. 要求知道经过重心root的 ...

  5. Redis 源码简洁剖析 09 - Reactor 模型

    Reactor 模型 事件驱动框架 Redis 如何实现 Reactor 模型 事件的数据结构:aeFileEvent 主循环:aeMain 函数 事件捕获与分发:aeProcessEvents 函数 ...

  6. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile

    前言 IDEA(2020)引入Maven进行依赖管理,无法从私服上下载jar包 报如下错误 Failed to execute goal org.apache.maven.plugins:maven- ...

  7. JVM学习八-(复习)年轻代、老年代、永久代

    Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象,如下图所示: 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old).新生代 ...

  8. 有关MVC设计模式 #DF

    模型(Model).视图(View).控制器(Controller) -- MVC是 Cocoa 中的一种行为模块,并且也是所有 Cocoa 设计模式中使用最多的.在程序中按照它们的角色来分类这些对象 ...

  9. 各种字体.效果和名字对应图. --- by 王朋

    原帖地址:http://www.oschina.net/question/565065_76244

  10. iOS加载Gif图片的N种方式 By-H罗

    1.系统UIImageView 多张图片组成动画 /** * UIImageView 动画 * Memory-23M */ -(void)gifPlay1 { // NSArray *array=@[ ...