dst*_*arh 5 java data-binding playframework
有没有办法正确绑定到表单上的Set?
我正在进行POJO绑定,我的控制器接受一个User对象
public static void create(User user)
Run Code Online (Sandbox Code Playgroud)
user.java
public class User implements Serializable {
public Long id;
@Required
@Email
public String email;
public Set<Group> groups;
}
Run Code Online (Sandbox Code Playgroud)
Group.java
public class Group implements Serializable {
public Long id;
public String name;
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法将我的字段绑定到组
我试过了user.groups [].id,user.groups [0] .id,user.groups.id.我可以使用它来处理列表就好了但是当它发布时,我得到一个N元素的列表,其中包含一堆空项(对于每个未检查的复选框,一个为null)我可以创建一个没有空值的新列表但那似乎不对.
编辑:用户和组并不是持久性实体,Play只是作为一个无状态且无持久的表示层,用于RESTful API
Play 1.2.4 的新 Binder 实现允许这样做。
在 1.2.4 之前的 Play 版本(2011 年 12 月 2 日发布)中,您无法通过发送类似参数来绑定集合
user.groups[1].id = 1
user.groups[1].name = "name1"
user.groups[3].id = 3
user.groups[3].name = "name3"
user.groups[4].id = 4
user.groups[4].name = "name4"
Run Code Online (Sandbox Code Playgroud)
绑定到 List 的问题是,您将得到一个长度为 5 的 List,其中 0 和 2 处的值为 null。
如果您仍然需要使用低于 1.2.4 的 Play 版本,可以使用以下方法解决此问题
Map<String, Group> groups
Run Code Online (Sandbox Code Playgroud)
而不是设置或列表。这样你就不会得到中间的空元素,并且你将通过调用 groups.values() 得到 Collection。
| 归档时间: |
|
| 查看次数: |
2080 次 |
| 最近记录: |