如何在Spring / Intellij中修复“无法解决{thymeleaf placeholder}”的问题?

时间:2015-09-22 23:34:49

标签: java spring spring-mvc intellij-idea thymeleaf

在尝试解决类似issue的过程中,由于所谓的好处,我一直在寻求切换到百里香,并尝试使用Spring Boot的简单入门应用。

但是,当我在html页面中使用th时,它会给我一个“无法解决'var'”错误。我能够通过IntelliJ的跟踪器上发现的这个丑陋的黑客来解决这个错误:

// hack for Thymeleaf plugin - duplicate model properties
if (false) {
    WebContext context = new org.thymeleaf.context.WebContext(null, null, null);
    // Here we must dup all model attributes
    context.setVariable("name", name);
} 

这使控制器看起来像,例如:

@RequestMapping("/greeting")
public String greeting(@RequestParam(value = "name", required = false, defaultValue = "World") String name,
                       Model model) {
    model.addAttribute("name", name);

    // This code is repetitive and bloating
    // Every model attribute must be added here!
    if (false) {
        WebContext context = new org.thymeleaf.context.WebContext(null, null, null);
        context.setVariable("name", name);
    }
    return "greeting";
}

丑陋,因为这个代码会对无意义的if (false)产生一个明显的警告,但也因为我将拥有一些观点和控制器,而且坦率地说是尴尬。如果这是一次性的一件事我会忽略它;不是这样的。

在了解Spring和Boot以及所有配置可能性的同时,我注意到有一些方法可以告知Spring各种条件,这将有助于它更好地帮助您。例如,提供元数据以辅助属性文件中的内容辅助(抱歉,我是新的,所以这可能不是一个相关的例子)。

有没有更简洁的方法来修复“无法解决'var'”错误?

我尝试在应用程序属性文件中调整百万美元属性,但所有默认值似乎都是正确的。

使用IntelliJ IDEA Ultimate 14.1.3和4。

0 个答案:

没有答案