使用Thymeleaf在Spring MVC中显示模型对象

时间:2014-07-01 13:09:56

标签: spring spring-mvc thymeleaf

首先,我定义了一个简单的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 

我做错了什么?

1 个答案:

答案 0 :(得分:5)

可能因为-是百里香叶的有效算术表达式。因此,mydesc可能会被视为不属于的变量。尝试将模型变量更改为myDesc,它应该可以正常工作。

但是,有一个更广泛的问题,您已将myDesc方法标记为@Bean,此处似乎没有必要,有任何理由这样做吗?