在游戏中使用@select! Framework 2.3 模板和 Java

Use of @select in a Play! Framework 2.3 template and Java

我正在尝试在 Play 中使用 'select' 表单元素! 2.3,无法让它工作。我要为模板提供什么?目前我有这个:

public static Result add(Long sensorId) {
    Form<Action> myForm = Form.form(Action.class);

    Sensor sensor = Sensor.find.byId(sensorId);
    Action action = new Action();
    action.actionUp = true;
    action.sensor = sensor;
    myForm.fill(action);

    HashMap<String, String> devices = new HashMap<>();
    for(Device device : Device.find.all()){
        devices.put(device.id.toString(), device.name);
    }

    return ok(editView.render(myForm, action, devices));
}

和模板:

@(myForm: Form[models.Action], action: models.Action, deviceList: HashMap[String, String])

@helper.select(myForm("device"), deviceList,'_label -> "Perform on device")

但这并不像它期望的那样工作 Seq[(String, String)]。 不过,我找不到在 Java 中创建它的方法...非常感谢任何帮助!

表单助手不会知道,如果您直接将 deviceList 放在 select 中,最后它期望您提供 options。这就是原因,它显示此错误 expects a Seq[(String, String)].

要解决这个问题,您必须用 options 包裹 deviceList,让助手知道 deviceListselectoptions

所以应该像下面这样

@helper.select(myForm("device"), options(deviceList),'_label -> "Perform on device")