4

私は play フレームワークが初めてです (私は Java バージョンを使用しています)。selected="selected" をフィールドに追加するソリューションを探しています。私のコード:

@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>

select=selected を HTML に追加するための @select フィールドのスケール引数を知っている人はいますか? 私が探している結果は次のようになります。

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

4 に答える 4

2

しばらくウェブを検索した後、私の考えはサンプルプロジェクトに行きました。答えは私の目の前にありました。ビュー付きのフォームだけを作成するだけでは不十分です。これを明確にするために、コンピュータデータベースの例を見てください。空のフィールドを作成するには、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")

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

 public static Result edit(Long id) {
    Form<Computer> computerForm = form(Computer.class).fill(
        Computer.find.byId(id)
    );
    return ok(
        editForm.render(id, computerForm)
    );
}
于 2012-05-01T12:58:40.867 に答える
2

96scalaでは、コントローラーの次のコードが選択されることを知っています

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

Java では、私の推測では同じように動作するはずです。

于 2012-09-27T21:45:00.327 に答える
0

実際、答えはわかりませんが、ソースコードによると、何らかの方法でプロジェクトマネージャーを変更する必要があります。

また、 Play-Frameworkグループでこの質問をすることもできます。

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

于 2012-04-25T17:17:35.393 に答える
0

projectManager は何らかの関係だと思います。次に、試すことができます:

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

@see:同様のケース

于 2012-04-25T21:01:58.937 に答える