Как установить значение для поля списка типов в шаблоне Scala в Play 2.4?
Я передаю переменную формы от контроллера, который содержит поле типа списка. Как установить введенное пользователем значение для определенного индекса списка. Ниже мой код:
@Data
public class TestForm {
public List<TestInfo> testInfo = new ArrayList<TestInfo>();
public static class TestInfo {
public String testName;
public long testId;
}
}
public Result testRoute() {
Form<TestForm> form = Form.form(TestForm.class);
return ok(test.render(form));
}
public Result postRoute() {
Form<TestForm> form = Form.form(TestForm.class).bindFromRequest();
TestForm tf = form.get();
System.out.println(tf.testInfo); // getting empty list
return ok(tf.testInfo.get(0).testName);
}
}
@(tests : Form[views.forms.school.TestForm])
@import helper._
<html>
<body>
<form action="@routes.CustomController.postRoute" method="Post">
<input type="text" name=tests("testInfo")(0).testName value="1"/>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
Здесь у меня есть TestForm, который содержит список типа TestInfo. TestInfo содержит два поля testName и testId. И я передаю форму типа TestForm в шаблон scala, и там я хочу установить значения testName и testId на основе введенного пользователем значения, и я связываю эту форму внутри контроллера всякий раз, когда пользователь нажимает submit. но внутри контроллера я получаю пустое значение.
1 ответ
Я думаю, что вы хотите использовать повторный помощник по вашему мнению. Код будет выглядеть примерно так (хотя учтите, что на самом деле я этого не проверял)
@helper.form(routes.CustomController.postRoute()) {
@helper.repeat(tests("testInfo"), min = 1) { infoItem =>
@helper.inputText(infoItem.testName)
@helper.inputText(infoItem.testId)
}
}