我有一个wicket页面,其中有一个表单可以编辑一个与另一个实体有很多关系的实体。
@Entity...
class Period {
...
@Column(length = 100)
private String description;
@ManyToMany()
private List<Action> actions = new ArrayList<Action>;
...
}
@Entity...
class Action {
...
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "join", joinColumns = @JoinColumn(name = "actionId"),
inverseJoinColumns = @JoinColumn(name = "periodId"))
private Set<Period> periods = new HashSet<Period>();
...
}
class FormPage {
public FormPage(Period period) {
CompoundPropertyModel<Period> props = new CompoundPropertyModel<Period>(period);
Form<Period> form = new Form<Period>("id", props);
form.add(new TextField<String>("description"));
???
}
}
如何将“action”添加到“period”?旧的jsp页面以带有label和checkbox的形式显示了所有可用的操作对象。我想保留复选框,这样页面的外观就不会与旧的jsp页面发生变化。我唯一能想到的就是创建一个哈希表,其中包含可用操作的id,以及一个布尔值,指示是否应该添加或删除它。有人知道一个更好的方法或者一个实现的好例子吗?
2条答案
按热度按时间zc0qhyus1#
找到要使用的正确组件。斯文迈尔含糊地把我推向正确的方向,但这应该在问号处完成:
为了正确呈现字符串,我在checkboxmultipleechoice中添加了一个choicerender:
llmtgqce2#
使用checkgroup、listview和check组件的层次结构。请参阅wicket示例中的输入以获取灵感。