2012-08-22 57 views
1

Twitter剛發佈bootstrap 2.1,我想更新play2的助手。Java Play 2 - 手動更新

當前規則 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

我最近遇到類似的問題,並最終創建了我自己的助手爲此目的。

內容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) } 
+0

哇謝謝,你爲我節省了大量的時間! :) –

2

您更新了Play!源代碼,但是你沒有編譯和打包它。

改變傭工最好的辦法是在自己的項目中使用這些:

  1. 將新助手在app/view目錄
  2. 直接在您的看法使用,而不必增加任何進口
+0

好的,謝謝,但我該如何使用它們? (我更新了我的帖子。)如果用戶犯了錯誤,我只想渲染錯誤。所以我需要告訴玩家「嘿,從視圖中使用錯誤幫手!」 –

+0

請顯示您放置新模板的位置?如果它在'app/views'文件夾中,則不需要在視圖中使用@import helper._'語句。 –

+0

我們應該爲playstrap2創建一個插件 – Shrey