thymeleaf读取配置文件zh_CN得问题解决!

本文介绍在Spring Boot + Thymeleaf项目中,如何直接从页面读取配置文件中的URL,避免额外Controller的编写,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天就在两个小时之前,再配合前端人员做页面开发过程中遇到一个问题,就是需要读取配置文件中的一段地址填充到页面按钮上。
##技术栈
springboot + thymeleaf
##问题描述
这里得问题描述我就引用其他平台得一个问题,历史总是出奇得相似具体报错请点击segmentfault
当前端告诉我这个地址需要根据配置文件变动得时候,我的第一想法不是写一个controller去获取配置文件得配置,毕竟像我这么懒得程序猿才不会为了一个url去写一个controller呢,于是我就想能不能让页面直接能够获取配置文件,那样岂不是爽歪歪,于是乎我就打开了我的Google,查了一下thymeleaf有一个根据message.properties动态填充文字得方法于是我便尝试了一下??age_zh_CN??
??home.welcome_zh_CN??
??home.welcome_zh_CN??
就出现上述问题
于是就查阅官方文档thymeleaf3发现原来是缺少了他读取配置文件得css,于是就尝试添加css刷新页面问题就完美解决

<link rel="stylesheet" type="text/css" media="all" href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />

##总结
出现上述问题多看官方文档,然后自己动手操作起来才是解决问题得关键!有问题可以联系我,有问必答


###一名努力成为架构师得初级程序员,我是狗贼我为自己带盐

### Thymeleaf 中消息表达式的使用方法 Thymeleaf 是一种强大的服务器端 Java 模板引擎,支持 HTML、XML 和其他格式的模板处理。其中的消息表达式(`#{...}`)主要用于实现国际化功能,允许开发者通过键值对的方式加载资源文件中的文本内容。 #### 消息表达式的语法 消息表达式的标准形式为 `#{key}` 或者带有参数的形式 `#{key(arg0,arg1,...)}`[^2]。它可以从配置好的资源文件中读取对应的值并将其渲染到页面上。这种机制非常适合多语言网站开发场景下的动态文本显示需求。 #### 配置步骤 为了使消息表达式正常工作,通常需要完成以下几个方面的设置: 1. **引入依赖** 确保项目已经包含了 Thymeleaf 的相关 Maven 或 Gradle 依赖项。 2. **创建资源文件** 在项目的 `src/main/resources/` 路径下建立名为 `messages.properties` 的属性文件,并根据实际的语言环境添加更多版本,比如 `messages_en_US.properties`, `messages_zh_CN.properties` 等。这些文件内部存储着 key-value 形式的字符串数据[^3]。 3. **启用 Spring Boot 自动配置** 如果是在基于 Spring Boot 的环境中,则无需额外编写 Bean 定义来初始化 MessageSource;框架会自动扫描 classpath 下面所有的 .properties 文件作为候选源材料之一。 4. **HTML 页面调用** 利用 `<tag th:text="#{messageKey}">Default Text</tag>` 这样的方式,在前端视图层嵌套进所需展示的信息条目名即可。 #### 示例代码 下面给出一段具体的例子说明如何运用消息表达式达到预期效果: ```html <!DOCTYPE html> <html lang="zh-CN" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title>Thymeleaf Demo</title> </head> <body> <h1 th:text="#{welcome.title}"></h1> <p th:if="${not #strings.isEmpty(message)}" th:text="#{greeting(${message})}"> Hello, world! </p> <!-- 更复杂的条件判断 --> <div th:switch="${user.language}"> <p th:case="&#39;en&#39;">#{"hello.inEnglish"}</p> <p th:case="&#39;es&#39;">#{"hello.inSpanish"}</p> <p th:case="*">#{"hello.defaultLanguage"}</p> </div> </body> </html> ``` 在此基础上还需要准备相应的 messages*.properties 文件内容如下所示: ``` welcome.title=欢迎来到我们的网站 greeting=你好,{0} hello.inEnglish=Hello hello.inSpanish=hola hello.defaultLanguage=Bonjour ``` 以上即完成了基本的消息传递流程演示[^5]。 #### 注意事项 当遇到复杂逻辑或者特殊字符转义等问题时,请参照官方文档进一步学习调整策略[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏鹏与丁满

一分也是爱,哈哈哈哈哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值