使用Groovy模板的Spring MVC / Boot访问简单模型

时间:2015-07-17 20:18:31

标签: spring groovy spring-boot

无法弄清楚如何在Groovy布局模板中访问模型属性。

我想要的是能够为css,js等呈现cdn网址或本地开发网址...

的IndexController

@Controller
@RequestMapping("/")
public class IndexController {

    @Autowired
    ActiveProfileUtil activeProfileUtil;

    @Autowired
    DeviceChooserUtil deviceChooserUtil;

    @RequestMapping(method = RequestMethod.GET)
    public String getIndex(Device device, Model model) {

        System.out.println(activeProfileUtil.getActiveProfile());

        model.addAttribute("profiles", activeProfileUtil.getActiveProfile());

        String deviceType = deviceChooserUtil.getDeviceView(device, "index");

        return deviceType;

    }

}

sys out正确打印

我在groovy布局中有一个if语句,应该看到profile模型并相应地呈现链接。

通用布局

yieldUnescaped '<!DOCTYPE html>'
html {
    head (lang:'en'){
        meta(charset:'utf-8')
        title(pageTitle)
        if (profiles == 'production')
            script(src:'http://cdn.somehost.com/assets/js/desktop.js'){}
        else
            script(src:'assets/js/desktop.js'){}
    }
    body {
        div(class:'container') {
            mainBody()
        }
    }
}

目前没有任何反应总是呈现错误。如果我改为!=它将始终呈现真实。

activeProfileUtil.getActiveProfile()是一个返回String生产或开发的方法

在index.tpl

layout 'desktop/layouts/common.tpl',
profiles: profiles,
pageTitle: 'Test Title',
mainBody: contents {
    div(class:'row') {
        div(class:'col-md-12') {
        h1("H1 Title")
            p('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.')
        }
    }
}

1 个答案:

答案 0 :(得分:1)

答案很简单。试图将profiles传递给公共布局模板。而是需要将profiles传递给index.tpl

这纠正了这个问题 profiles: profiles

未能找到很多关于Groovy模板的文档,所以在我考虑逻辑之前就提出了问题。