【问题标题】:scalate/scaml layout not applied未应用 scalate/scaml 布局
【发布时间】:2011-05-09 14:52:14
【问题描述】:

我已按照用户手册应用默认模板,例如在项目 src/main/webapp/WEB-INF/scalate/layouts/default.scaml 我有一个应该应用于所有scaml文件的模板,但是当我点击我的测试页面时(在 src/main/webapp/WEB -INF/views/x/view.scaml) 它只呈现该页面中的内容。即使我在顶部放置了一个明确的布局属性,它仍然不会呈现,即

- attributes ("layout") = "/WEB-INF/scalate/layouts/default.scaml"

知道我做错了什么吗?

【问题讨论】:

  • 这似乎暗示默认布局策略已更改为Null策略:fusesource.com/issues/browse/SCALATE-34。关于如何设置布局策略的任何想法?我不认为那是在文档中,或者我没有看到它......
  • 我正在使用 scalate 的弹簧视图解析器 ScalateViewResolver。似乎应该针对该类设置布局策略,但我没有看到任何方法。

标签: scalate


【解决方案1】:

深入研究 scalate 源代码 (1.4.1),如果应应用布局,则 viewName 应以“layout:”为前缀,请参阅https://github.com/scalate/scalate/blob/master/scalate-spring-mvc/src/main/scala/org/fusesource/scalate/spring/view/ScalateViewResolver.scala

这似乎是一个非常奇怪的决定,因为文档表明可以通过以下方式在每个视图的基础上禁用布局:

- attributes("layout") = ""

鉴于此,我不确定为什么默认禁用布局,并且每个视图都必须明确要求启用布局功能。

【讨论】:

  • 这看起来是用于 scalate 的 spring-mvc 插件的一个功能;不自行扩展。对于其余的 scalate 模板,使用您提到的机制应用于布局。不幸的是,我对 spring-mvc 知之甚少,无法知道这种布局:前缀的想法是否是一件好事
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多