Play 2.0 - Java:将选定的值添加到@select字段

时间:2012-04-24 11:39:03

标签: java select playframework playframework-2.0

我是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字段的scale参数来将select = selected添加到html中?我正在寻找的结果如下:

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

4 个答案:

答案 0 :(得分: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)
    );
}

答案 1 :(得分:2)

在scala中,我知道控制器中的以下代码将选择96

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

在Java中,它的工作原理与我猜测的相同。

答案 2 :(得分:0)

实际上,我不知道答案,但根据source code,您必须修改 projectManagers

另外,您可以尝试在Play-Framework group中提出这个问题。

也许这对你有所帮助。

答案 3 :(得分:0)

我认为projectManager是某种关系。然后你可以尝试:

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

@see:similar case