Thymeleaf将字符串转换为数字

当后端字段为String类型,前端Thymeleaf需要进行数字运算时,遇到了字符串相加的问题。本文介绍了三种解决方法:1) 后端实体类中直接转换;2) 使用Thymeleaf的#numbers.sequence()方法;3) 创建后端工具类并托管到Spring容器,前端调用工具类方法。推荐使用第三种方法,方便维护。
摘要由CSDN通过智能技术生成

Thymeleaf将字符串转换为数字!

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

网上查找没有相关资料且质量堪忧,所以自己写一篇文章希望可以帮助到有需要的人,特此记录。
问题截图:
问题截图
代码截图:
前端代码
起初以为Thymeleaf有提供Integer的内置对象供我们进行类型转换,但是找了一圈文档发现都没有此内置对象也没有相应的方法,最后苦苦琢磨总结了以下三种解决方法:

第一种:

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

private String startRow;
public String getStartRow(){return startRow;}

public Integer getStartRowNum(){
	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;
    }
}

前端调用:
在这里插入图片描述
查看结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值