Java Play 2 - 手动更新

时间:2012-08-22 12:49:46

标签: java twitter-bootstrap playframework-2.0 updates

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

目前的规则是 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
            )

3 个答案:

答案 0 :(得分:3)

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

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) }

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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