Scala Playframework 2.0在视图模板中定义函数

Scala Playframework 2.0在视图模板中定义函数,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,我正在使用PlayFramework 2.0进行一个项目。在阅读了一些scala之后,我想在视图模板中嵌入一些动态代码。因此,我做了以下工作: @{ def getMystring(sequence:Int) = { if(patternForm != null && patternForm.get().windowTreatments != null && patternForm.get(

我正在使用PlayFramework 2.0进行一个项目。在阅读了一些scala之后,我想在视图模板中嵌入一些动态代码。因此,我做了以下工作:

@{
    def getMystring(sequence:Int) = {
        if(patternForm != null && 
            patternForm.get().windowTreatments != null &&
            patternForm.get().windowTreatments.size() >= sequence + 1)
            sequence+""
        else 
            "" 
    }
}

<input type = "text" value = @getMystring(1)></input>
...
@{
def getMystring(序列:Int)={
if(patternForm!=null&&
patternForm.get().windowTreatments!=null&&
patternForm.get().windowTreatments.size()>=序列+1)
序列+“”
其他的
"" 
}
}
...

我很确定它会工作,但我得到了一个“未找到:值getMyString出错”。我做了什么明显的错误吗?

试着像模板一样启动它,就像这样

@getMystring(sequence:Int) = {

[...]

请看一看问题所在,play定义的范围非常狭窄,无法识别当前花括号之外的DEF

您可以更改def最后一个花括号的位置,使其包含输入标记,然后它就可以工作了

或者您可以按照opensas的建议进行操作

@getMystring(sequence:Int) = {

[...]

因为模板的灵感来自razor,所以我期待着razor式的范围界定。但现在我更清楚了:)