我的问题是提取xhtml属性以生成绝对链接, 因为他们需要在测试和生产上有所不同 环境。 我想使用绑定所有“src”和“href”的“全局代码片段” 属于“localhost:8080”或“www.mydomain.com”的属性取决于a conf值。
这就是模板的样子:
<lift:Global>
<html><body><a G:href="/somelink">some text</a></body></html>
</lift:Global>
这是Global.render方法:
bind("G",template,
AttrBindParam("href",Conf.localhost
+BindHelpers.attr("G","href").map(_.toString).getOrElse("none") ,"href")
)
但是在渲染的页面中,我看到的是...... href =“confValueNone”。
我做错了什么? 有没有更好的方法来配置不同的环境?
答案 0 :(得分:2)
我现在使用AttributeSnippets。它们在模板方面有点重,但会产生更清晰的片段。
片段:
import xml.{UnprefixedAttribute, MetaData}
...
def src(in:MetaData):MetaData = {
new UnprefixedAttribute("src",Conf.localhost+in.value.toString,scala.xml.Null)
}
def href(in:MetaData):MetaData = {
val out = new UnprefixedAttribute("href",Conf.localhost+in.value.toString,scala.xml.Null)
out
}
模板:
...
<script type="text/javascript" lift:Global.src="/inc/showdown.js" />
<link rel="stylesheet" type="text/css" lift:Global.href="/inc/style.css" />
...