Thymeleaf中th:text=“${msg}“属性标签报错无法解析变量

在Spring boot项目中,整合Thymeleaf模板引擎,在html文件中使用th:text="${msg}"属性标签时,提示报错“无法解析msg”。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>This is Thymeleaf</title>
</head>
<body>
<div th:text="${msg}"></div>
</body>
</html>

对应的Controller代码如下:

@Controller
public class ThymeleafController {
    @GetMapping("/home")
    public String test1(Model model){
        model.addAttribute("msg", "Welcome to home page! Enjoy yourself,please!");
        return "home";
    }
}  

原因分析:

在使用Model来设置变量值时,若返回类型为String,则页面无法获取到该变量。

解决方案:

将方法的返回类型修改为Object类型。则页面可以正常解析Model实例中的变量值。

@Controller
public class ThymeleafController {
    @GetMapping("/home")
    public Object test1(Model model){
        model.addAttribute("msg", "Welcome to home page! Enjoy yourself,please!");
        return "home";
    }
}

页面可以正常获取到${msg}变量的值。

在这里插入图片描述

Thymeleaf模板引擎中,使用`th:text="${username}"`报错可能有多种原因。以下是一些常见的错误原因及解决方法: 1. **变量未定义**: - 错误原因:模板中使用的`username`变量在控制器中没有定义或传递。 - 解决方法:在控制器中确保将`username`变量添加到模型中。例如: ```java @Controller public class UserController { @GetMapping("/welcome") public String welcome(Model model) { model.addAttribute("username", "John Doe"); return "welcome"; } } ``` 2. **模板文件位置不正确**: - 错误原因:模板文件的位置不正确,导致无法找到对应的模板文件。 - 解决方法:确保模板文件位于`src/main/resources/templates`目录下,并且文件名与控制器返回的视图名称一致。 3. **Thymeleaf命名空间未正确配置**: - 错误原因:HTML文件中的Thymeleaf命名空间配置不正确。 - 解决方法:在HTML文件的`<html>`标签中添加正确的Thymeleaf命名空间: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> ``` 4. **语法错误**: - 错误原因:Thymeleaf表达式语法错误。 - 解决方法:检查`th:text`属性中的表达式是否正确,确保没有拼写错误或多余的字符。 5. **依赖未正确引入**: - 错误原因:项目中未正确引入Thymeleaf依赖。 - 解决方法:在`pom.xml`(Maven)或`build.gradle`(Gradle)中添加Thymeleaf依赖。例如,使用Maven: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 通过以上步骤,可以解决`th:text="${username}"`报错的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值