2012-04-24 10 views
4

私はプレイフレームワークを初めて使用しています(Java版を使用しています)。私は、選択したフィールドに "selected"を追加する解決策を探しています。私のコード:Play 2.0 - Java:選択した値を@selectフィールドに追加する

@select(settingsForm("projectManager"), options(projectManagers), '_label -> "Project manager") 

HTMLの結果は次のようになります。

<select id="projectManager" name="projectManager"> 
    <option value="222">Henk</option> 
    <option value="96">Geert</option> 
</select> 

誰もがHTMLに選択=選択を追加する@select場の規模引数を知っていますか?私のようなルックスを探しています結果:

<select id="projectManager" name="projectManager"> 
    <option value="222">Henk</option> 
    <option value="96" select="selected">Geert</option> 
</select> 

答えて

2

いくつかの時間のためのWebを検索した後、私の考えは、サンプルプロジェクトに行ってきました。その答えは私の目の前にあった。ビューだけでフォームを作成するだけでは不十分です!これをもっと明確にするには、コンピュータデータベースの例を見てください。空のフィールドを作成するには、単にビューへのFormオブジェクトを渡す:

Controller: 
public static Result create() { 
    Form<Computer> computerForm = form(Computer.class); 
    return ok(
     createForm.render(computerForm) 
    ); 
} 

View: 
@inputText(computerForm("name"), '_label -> "Computer name") 
@inputText(computerForm("introduced"), '_label -> "Introduced date") 
@inputText(computerForm("discontinued"), '_label -> "Discontinued date") 

フォームを充填する場合は、そのフォームにデータを渡す必要があります。例が示すように:Scalaで

public static Result edit(Long id) { 
    Form<Computer> computerForm = form(Computer.class).fill(
     Computer.find.byId(id) 
    ); 
    return ok(
     editForm.render(id, computerForm) 
    ); 
} 
0

は実は、私は答えを知らないが、source codeによると、あなたは何らかの方法であなたのprojectManagersを変更する必要があります。

また、Play-Framework groupでこの質問をすることもできます。

多分それはあなたのために役立つでしょう。

0

私は、projectManagerがある種の関係であると仮定します。そして、あなたが試みることができる:

@select(
    settingsForm("projectManager.id"), 
    options(projectManagers), 
    '_label -> "Project manager" 
) 

@see:similar case

+0

Projectmanagerは、キー値 - > id、nameを持つハッシュマップです。私は別のプログラムからこのリストを引き出す。私のモデルは、ちょうど(それがIDです)文字列が含まれています \t @Column(名前は=「project_manager」 \tプライベート文字列projectManager; //は、私が欲しいもの「96」 ようにすることができprojectManagerが満たされた場合には、 ProjectManagerの値によって選択された値が選択されていますprojectManagerが '96'であるため 'Geert'が選択されます – Jacob

2

を、私は知っているコントローラに以下のコードは、それが私の推測から、同じように動作するはずJavaでは96選択

settingsForm.bind(Map("projectManager" -> "96")) 

を行います。

+1

バインドを使用する際に問題が発生すると、これは、Scalaの最も洗練されたソリューションです:@select(settingsForm( "projectManager")。copy(value = Some( "96"))、 options(projectManager)、 '_label - > "Project manager") – Joffer

+0

@Jofferはお金の上にある。このアプローチは一つの問題を解決するが、anoあなた。 – bitstream

関連する問題