使用 Play 2.3.7 (Java) 我有以下场景。
我有一个CSVData
包含类型列表的类CSVField
。以下是这些类的属性:
public class CSVData{
private String name;
private String description;
private String dataFilePath;
private List<CSVField> fields;
private Double latitude;
private Double longitude;
// rest of class... }
和
public class CSVField {
private String name;
private String type;
...}
制作表单输入时的困难CSVData
在于我有这个嵌套List<CSVField>
属性并且CSVField
是包含两个字符串的自定义类型。我需要表格是动态的,因为它应该能够接受任意数量的CSVField
s(至少 1 个)。根据Java Form Documentation,似乎我应该为 CSVField 注册一个自定义 DataBinder,但是我找不到任何使用多个输入字符串执行此操作的示例。这个例子类似,但它只绑定一个字段。
这是我想要的用户输入类型的视频。我使用此示例代码来添加动态字段。文本字段(名称)和选择下拉项(类型)的组合是我需要绑定到 aCSVField
然后添加到对象List<CSVField> fields
中的。如何使用 Play 框架做到这一点?CSVData
编辑:在我的控制器中我试过这个
Form<CSVData> formData = Form.form(CSVData.class).bindFromRequest();
在我看来我试试这个
@helper.repeat(csvForm("fields"), min = 1) { csvField =>
@multiDataField(csvField,
label = "Column Name and Type",
gsnTypes,
help = "Enter the column names and respective types for the data items in the file")
}
这个模板multiDataField
在哪里。但它没有正确绑定动态字段并在. 我认为我的问题是我不知道在我的模板中使用什么属性。有什么建议吗?fields
name
multiDataField