【问题标题】:Java Play 2 - Updating manuallyJava Play 2 - 手动更新
【发布时间】:2012-08-22 12:49:45
【问题描述】:

Twitter 刚刚发布了 bootstrap 2.1,我想更新 play2 的 helpers。

目前的规则是 https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/views/helper/twitterBootstrap/twitterBootstrapFieldConstructor.scala.html

我去了C:\play\framework\src\play\src\main\scala\views\helper\twitterBootstrap

并将其更改为: (规则可以在这里找到:http://twitter.github.com/bootstrap/base-css.html#forms

@(elements: views.html.helper.FieldElements)

@import play.api.i18n._
@import views.html.helper._

@**************************************************
* Generate input according twitter bootsrap rules *
**************************************************@

<div class="control-group error">
 <label class="control-label" for="@elements.id">@elements.label(elements.lang)</label>
 <div class="controls">
        @elements.input
        <span class="help-inline">@elements.errors(elements.lang).mkString(", ")</span>
        <span class="help-block">@elements.infos(elements.lang).mkString(", ")</span> 
    </div>
</div>

但我不知道如何更新我的项目。

我做到了

play
clean
run

但它仍然使用旧规则,有什么想法吗?

编辑:

如何在视图中使用 twitter 助手?

@(signupForm: Form[User])

@import helper._


@title = {
    Sign Up
}

@main(title, nav = "signup") {

    @helper.form(action = routes.SignUp.submit) {

        <fieldset>
            <legend>Account informations</legend>

            @inputText(
                signupForm("username"), 
                '_label -> "Username", 
                '_help -> "Please choose a valid username.",
                '_error -> signupForm.globalError
            )

【问题讨论】:

    标签: java twitter-bootstrap playframework-2.0 updates


    【解决方案1】:

    我最近遇到了类似的问题,最终为此创建了自己的 Helper。

    app/views/Helpers/bootstrapInput.scala.html的内容:

    @(elements: helper.FieldElements)
    
    @*****************************************************
    * Generate input according to twitter bootsrap rules *
    ******************************************************@
    <div class="control-group @if(elements.hasErrors) {error}">
      <label class="control-label" for="@elements.id">@elements.label</label>
      <div class="controls">
        @elements.input
        <span class="help-inline">@elements.errors(elements.lang).mkString(", ")</span>
      </div>
    </div>
    

    要使用它,请将其放在您的视图中(在顶部,直接在声明参数之后):

    @implicitField = @{ FieldConstructor(views.html.Helpers.bootstrapInput.f) }
    

    【讨论】:

      【解决方案2】:

      您更新了 Play!源代码,但是你没有编译打包。

      更改助手的最佳方法是在您自己的项目中使用它们:

      1. 将新的助手放在app/view 目录中
      2. 直接在视图中使用它们而不添加任何导入

      【讨论】:

      • 好的,谢谢,但是我该如何使用它们呢? (我更新了我的帖子。)如果用户犯了错误,我只想呈现错误。所以我需要告诉 play “嘿,使用视图中的错误助手!”
      • 请说明您将新模板放在哪里?如果它在app/views 文件夹中,则您的视图中不需要@import helper._ 语句。
      • 我们应该为 bootstrap2 创建一个带有 play 的插件
      【解决方案3】:

      Github 上还有 pull request 用于在 Play 框架中修复此问题。也许有人可以使用this commit 方便。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-05
        • 2012-08-08
        • 2017-01-23
        • 2013-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多