当前位置 : 主页 > 编程语言 > 其它开发 >

Thymeleaf将字符串转换为数字

来源:互联网 收集:自由互联 发布时间:2022-05-17
Thymeleaf将字符串转换为数字 Thymeleaf将字符串转换为数字 Thymeleaf将字符串转换为数字! 近期努力敲代码的时候遇到一个问题,某个字段在后端使用的是String存储,但是前端thymeleaf模板需
Thymeleaf将字符串转换为数字 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;
  }
}

前端调用:

 

 查看结果:

 

在学编程的小菜鸡~
网友评论