播放框架2.1.1中的语法错误

时间:2013-12-16 13:45:17

标签: eclipse scala playframework

我从github克隆了一个项目。这是yesnault / Play20StartApp。

我下载了2.1.1版本并将其导入eclipse。

我可以成功运行该应用程序,但eclipse一直告诉我,我的login.scala.html和wflash.scala.html中存在一些语法错误。

login.scala.html如下所示。

@(loginForm: Form[Application.Login])

@import helper._
@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.render) }

<h3>@Messages("signin.signin")</h3>

@form(routes.Application.authenticate(), 'class -> "form-vertical") {

@if(loginForm.hasGlobalErrors) {
    <p class="error">
        <span class="label important">@loginForm.globalError.message</span> </p>}

//值消息不是Option [play.api.data.FormError]的成员

<fieldset>
    @inputText(
        loginForm("email"),
        'placeholder -> Messages("email"),
        '_label -> null,
        '_help -> Messages("signin.your.email")
    )
    @inputPassword(
        loginForm("password"),
        '_label -> null,
        'placeholder -> Messages("password"),
        '_help -> Messages("signin.your.password")
    )
</fieldset>

<div class="form-actions">
    <input type="submit" class="btn btn-primary" value="@Messages("signin.signin")">
    <small><a href="@controllers.account.routes.Reset.ask">@Messages("forgot.password")</a></small>
</div>

}

这是wflash.scala.html。

@import helper._
@import helper.twitterBootstrap._

未找到:值闪烁

@flash.map {
    case (key, value) => {
        <p class="">
            <span class="badge badge-@key">@value</span>
        </p>
    }
}

在login.scala.html中将@ loginForm.globalError.message更改为@ loginForm.globalError.get.message后,其中的语法错误将消失。

另外,如果我将wflash.scala.html更改为此内容,则不会出现语法错误。

@(implicit flash: Flash)
@import helper._
@import helper.twitterBootstrap._

@flash.data.map {
case (key, value) => {
    <p class="">
        <span class="badge badge-@key">@value</span>
    </p>
   }
}

问题是我更改后应用无法成功运行。

localhost:9000中的网页显示“not found:type Flash”和“value get不是play.data.validation.ValidationError的成员”。

谁能告诉我解决方案?谢谢!

1 个答案:

答案 0 :(得分:1)

结帐后,您将 cd 发送到您的应用文件夹,然后运行play eclipse让您为您创建有效的eclipse项目。