Thymeleaf 使用后台自定义工具类处理文本

⏹1.自定义工具类

package com.example.jmw.utils;

import org.springframework.stereotype.Component;
import org.thymeleaf.util.NumberPointType;
import org.thymeleaf.util.NumberUtils;
import org.thymeleaf.util.StringUtils;

/*
	给自定义工具类取一个放入Spring容器中的别名;
	如果不取的话,默认为类名小写htmlUtil 
*/ 
@Component("htmlHandleUtil")
public class HtmlUtil {

	/**
	 * 数字添加逗号分隔符
	 * 
	 * @param num 数值
	 * @return 添加逗号之后的数字
	 */
	public static String formatNumber(Number num) {
		return NumberUtils.format(num, 1, NumberPointType.COMMA, java.util.Locale.JAPAN);
	}

	/**
	 * 将换行符转换为 <br />标签
	 * 
	 * @param content 转换前
	 * @return 转换后
	 */
	public static String replaceLinebreak(String content) {
		return StringUtils.replace(StringUtils.escapeXml(content), System.getProperty("line.separator"), "<br />");
	}
}

⏹2.后台向前台返回的数据

ZTestEntity zTestEntity = new ZTestEntity();
// 数字未添加千位分隔符
zTestEntity.setId("100000");
// 文本中含有换行符
zTestEntity.setAddress("宇宙 \r\n 银行系 \r\n 地球 \r\n 中国");

@GetMapping("/init")
public ModelAndView init() {
    
    ZTestEntity entity = service.init();
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("test");
    // 后台的数据传给前台
    modelAndView.addObject("entity", entity);
    return  modelAndView;
}

⏹3.前台使用后台自定义的工具类处理

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div th:object="${entity}">
    	<!--
    		其中htmlHandleUtil为后台工具类的bean名称
    	-->
        <div>[[*{@htmlHandleUtil.formatNumber(id)}]]</div>
        <hr>
        <!--未使用工具类处理携带换行符的文本-->
        <div>[[*{address}]]</div>
        <hr>
        <!--
        	使用th:utext确保后台的html换行<br>标签不被解析为纯文本
		-->
        <div th:utext="*{@htmlHandleUtil.replaceLinebreak(address)}"></div>
    </div>
</body>
</html>

🥳4.效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值