当前位置:网站首页>Thymeleaf 使用后台自定义工具类处理文本
Thymeleaf 使用后台自定义工具类处理文本
2022-07-05 14:10:00 【fengyehongWorld】
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.效果
边栏推荐
- 魅族新任董事长沈子瑜:创始人黄章先生将作为魅族科技产品战略顾问
- [buuctf.reverse] 152-154
- R Language ggplot2 Visualization: visualize linegraph, using Legend in Theme function. Paramètre de position emplacement de la légende personnalisée
- 分享 12 个最常用的正则表达式,能解决你大部分问题
- VC development of non MFC program memory leak tracking code
- R语言使用nnet包的multinom函数构建无序多分类logistic回归模型、使用coef函数获取模型中每个变量(自变量改变一个单位)对应的对数优势比(log odds ratio)
- 明峰医疗冲刺科创板:年营收3.5亿元 拟募资6.24亿
- What is the future development trend of neural network Internet of things
- Faire un clip vidéo auto - média deux fois, comment clip n'est pas considéré comme une infraction
- R language uses boxplot function in native package (basic import package, graphics) to visualize box plot
猜你喜欢
分享 20 个稀奇古怪的 JS 表达式,看看你能答对多少
TiFlash 面向编译器的自动向量化加速
-Web direction attack and defense world
如何将 DevSecOps 引入企业?
如何深入理解“有限状态机”的设计思想?
Tiflash compiler oriented automatic vectorization acceleration
Tdengine biweekly selection of community issues | phase III
快消品行业SaaS多租户解决方案,构建全产业链数字化营销竞争力
ASP.NET大型外卖订餐系统源码 (PC版+手机版+商户版)
TDengine 社区问题双周精选 | 第三期
随机推荐
Google EventBus 使用详解
用“新”字来吸引好奇的人群
总量分析 核算方法和势方法 - 分摊分析
Fault analysis | analysis of an example of MySQL running out of host memory
Leetcode array question brushing notes
Implementation process of WSDL and soap calls under PHP5
Financial one account Hong Kong listed: market value of 6.3 billion HK $Ye wangchun said to be Keeping true and true, long - term work
C - Divisors of the Divisors of An Integer Gym - 102040C
故障分析 | MySQL 耗尽主机内存一例分析
判断变量是否为数组
R language uses boxplot function in native package (basic import package, graphics) to visualize box plot
Some ideas about Apache mesos
Shen Ziyu, nouveau Président de Meizu: M. Huang Zhang, fondateur de Meizu, agira comme conseiller stratégique pour les produits scientifiques et technologiques de Meizu
R language ggplot2 visualization: use ggplot2 to visualize the scatter diagram, and use the labs parameter to customize the X axis label text (customize X axis labels)
软件测试人在深圳有哪些值得去的互联网公司【软件测试人员专供版】
R语言使用MASS包的polr函数构建有序多分类logistic回归模型、使用coef函数获取模型中每个变量(自变量改变一个单位)对应的对数优势比(log odds ratio)
Don't be unconvinced. Mobile phone function upgrade is strong
如何深入理解“有限状态机”的设计思想?
PHP5下WSDL,SOAP调用实现过程
How to introduce devsecops into enterprises?