【发布时间】:2013-11-21 22:07:20
【问题描述】:
我正在尝试实现<p:selectManyCheckbox>,但没有成功。
现在我有以下架构:
Course - have many Disciplines
Discipline - belongs to none, one or many Courses.
在Course 班级我有两个ArrayList<Discipline>:
public class CourseMBean{
(...)
// Stores all disciplines
private static ArrayList<Discipline> allDisciplines;
// Stores only the disciplines that's already associated with this course.
private static ArrayList<Discipline> courseDisciplines;
(get and set for the arraylists)
(...)
}
所有数据都来自 MYSQL DB,但这不是问题所在。现在我想创建一个新课程,所以我在 courseDisciplines 中没有任何内容。
我想在复选框中显示所有学科,并希望当用户选择一个复选框时,将此复选框的对象学科添加到 courseDisciplines 中 - 当取消选择一个复选框时,从 courseDsiciplines 中删除学科。
我的 JSF 2.0 代码如下:
<p:selectManyCheckbox id="disciplines" value="#{courseMBean.allDisciplines}" layout="grid" columns="2">
<f:selectItems value="#{courseMBean.courseDisciplines}" />
</p:selectManyCheckbox>
这实际上显示了所有学科,没有任何选中的复选框,这是正确的。但是当我选择一些复选框并提交表单时,我尝试在 courseDisciplines 中打印元素,这不会在控制台中显示任何内容。
我做错了什么?
【问题讨论】:
-
selectManyCheckbox 是否包含在表单中? CourseMBean 的范围是什么?
-
是的,他在一个表单中,范围是@SessionScoped。有什么问题吗,这应该可以按我的意愿工作吗?
-
我很难理解您的问题。为什么您尝试打印可用项目而不是所选项目,为什么可用项目显然是空的,但您显然可以在 UI 中选择它们?
标签: jsf primefaces selectmanycheckbox