Scalate SSP在某些if块上失败

时间:2015-07-01 13:16:26

标签: scala scalate ssp

考虑以下虚拟SSP文件:

Presto

由以下内容呈现:

#{
    val testMap1 =  Map("a" -> true, "b" -> true, "c" -> true)
    val testMap2 =  Map("d" -> false, "e" -> false, "f" -> true)

    val something = true
    val value = 3
}#

<html>
<head>
<title>Test</title>
</head>

<body>

#if(something)
    <h1>True</h1>
#elseif(value > 2)
    <h1>False, but higher</h1>
#else
    <h1>False</h1>
#end


#if(testMap1.forall(_._2) && testMap2.forall(_._2))
    <h1>All true</h1>
#elseif(testMap1.forall(_._2) || testMap2.forall(_._2))
    <h1>One map true</h1>
#else
    <h1>Neither</h1>
#end

这会失败。

第一个if块将很好地执行,但第二个if块将失败并出现一些SyntaxError(import java.io.File import org.fusesource.scalate.{ TemplateSource, TemplateEngine } val engine = new TemplateEngine() val file = new File("path/to/file.ssp") engine.layout(TemplateSource.fromFile(file)) Missing if at...)。我没有看到两个块之间有任何语法差异。每次我使用一些功能性的东西“动态”生成布尔值时,我就会碰到这个问题。我不被允许这样做吗?

例如,如果我将第二个块更改为以下块,则 工作:

Cannot have more than one else at ...

这里发生了什么?

0 个答案:

没有答案