【问题标题】:Show a model object in Spring MVC with Thymeleaf使用 Thymeleaf 在 Spring MVC 中显示模型对象
【发布时间】:2014-08-22 01:34:43
【问题描述】:

首先我定义了一个简单的POJO如下:

public class MyDesc {

    private String desc;

    public MyDesc(String desc) {
        setDesc(desc);
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

}

然后,我将MyDesc 的实例作为Spring MVC Model 对象传递:

@Bean
public MyDesc myDesc() {
    return new MyDesc("Holla!");
}

@RequestMapping(value="/", method = RequestMethod.GET)
public String home(Model model) {
    model.addAttribute("my-desc", myDesc());
    return "pages/home";
}

现在,我想通过使用 Thymeleaf 作为 模板引擎 将内容显示到 HTML 页面中。

<div th:text="${my-desc.desc}">Desc placeholder</div> 

但是运行时出现错误:

Property or field 'desc' cannot be found on null 

我做错了什么?

【问题讨论】:

    标签: spring spring-mvc thymeleaf


    【解决方案1】:

    可能是因为- 是百里香叶的有效算术表达式。所以这里mydesc 都可能被视为变量,而它们不是。尝试将您的模型变量更改为myDesc,它应该可以工作。

    但是还有一个更广泛的问题,您已将myDesc 方法标记为@Bean,这在这里似乎没有必要,有什么理由这样做吗?

    【讨论】:

    • 这是真实情况,它被标记为另一个类的bean。
    • 哦,好吧,所以这个 bean 被注入到控制器中,而不是被用作方法调用,那么我假设是对的,如果是这样的话,那很好。我之前以为您实际上是在调用 myDesc 方法,这不是使用 Spring 进行 Java 配置的正确方法。
    猜你喜欢
    • 2013-08-27
    • 2020-10-02
    • 2018-06-15
    • 2019-07-10
    • 2017-10-12
    • 2017-11-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多