【发布时间】:2013-09-17 20:40:46
【问题描述】:
我在 application.conf 中有一个布尔参数:
system.debugMode = false
我正在尝试根据我的 scala 模板中 this 的值进行分支:
<p>Debug mode parameter value: @Play.current.configuration.getBoolean("system.debugMode")</p>
@if(Play.current.configuration.getBoolean("system.debugMode")) {
<p>Debug mode on</p>
} else {
<p>Debug mode off</p>
}
我希望看到输出“调试模式关闭”,但我实际看到的是:
Debug mode parameter value: false
Debug mode on
我这里有选角问题吗?似乎我的值从配置文件返回为“假”,但@if 语句将其评估为真。我注意到 API 声明 getBoolean 方法返回一个包含布尔值的选项,所以也许这不能放入 if 评估中?
【问题讨论】:
-
选项不是布尔值。要获得您想要的结果,您需要确定选项是否包含布尔值,并决定如果包含,则如何操作,如果不包含。例如:
@if(Play.current.configuration.getBoolean("system.debugMode").getOrElse(true)) {- 此示例假定值为 true,除非特别设置。如果您想假设 false 除非设置,请更改为getOrElse(false)。