playframework - 如何在scala中设置选择输入

use*_*177 2 scala playframework playframework-2.0

所以我在页面上有一个表单,我试图在页面加载时预先加载所有旧值.但是我在选择对象时遇到了一些麻烦.

我有以下用于生成选择的scala代码:

<select id="networkInterfaces">
            <option value="">First Available</option>
            @for(interface <- networkInterfaces) {
                @if(interface.Name == configs.last.networkInterfaceName) {
                    <option selected="selected" value="@interface.Name">@interface.DisplayName</option>
                } else {
                    <option value="@interface.Name">@interface.DisplayName</option>
                }
            }
        </select>
Run Code Online (Sandbox Code Playgroud)

当页面加载时,它确实显示所选的网络接口已被选中.但问题是,如果我更改了其他一些设置并提交它,则返回选项html而不是值.有没有办法在页面加载时为scala中的select选择表单值?我缺少什么基础?否则我将改变处理显示名称而不是值的处理方式......

编辑

由于我无法使用此功能,我将值更改为@ interface.DisplayName,然后将其转换为服务器上的代码.我希望能够正确地做到这一点,但它似乎无法奏效.

jmu*_*uok 6

这是正确的<select id="networkInterfaces">没有name指定?

而且你应该使用play helper @selectFormobject.我认为它是处理表单值的更好方法.

@(form : Form[ABean])
@import helper._

@select(
form("configs.last.networkInterfaceName"),
options(networkInterfaces),
'_label -> "Interface Name",
'_default -> "First Available"
)
Run Code Online (Sandbox Code Playgroud)

有关帮助者@select访问的更多信息:https: //github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/views/helper/select.scala.html