我試圖實現一個<p:selectManyCheckbox>
但我沒有成功。如何使用SelectManyCheckbox和兩個ArrayList? - Primefaces
現在我有以下結構:
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數據庫,但是這不是問題。現在我想創建一門新課程,所以我沒有任何課程學科。
我想在複選框中顯示所有的紀律,並希望當用戶選擇一個複選框時,該複選框的對象Discipline將添加到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的範圍是什麼? – 757071
是的,他在一個表單內,範圍是@ SessionScoped.Is是錯誤的,這應該按我的意願工作? – Paladini
我很難理解你的問題。你爲什麼試圖打印可用的項目而不是選定的項目,爲什麼可用的項目顯然是空的,但你顯然可以在UI中選擇它們? – BalusC