ドロップダウンの子を使用してメニューを設定しようとしています。メニュー項目の通常のテーブルと、JSPを介したレンダリングを容易にするために子項目が移動されるセット/配列/リスト(それぞれ試行)を作成しました。ただし、.add()を使用して子のリストに項目を追加しようとすると、java.lang.NullPointerExceptionが発生し、それ以上進みません。
私のシステムはSpring/Hibernateを使用してセットアップされており、これ以外はすべて機能します。
モデル(無関係なフィールドとゲッター/セッターを除く):
public class Menu {
@Transient
private Set<Menu> pageChildren;
@Column(name = "pageParent")
private Integer pageParent;
@Column(name = "pageId")
private Integer pageId;
...
そして、コントローラーからの必要なスニペット:
List<Menu> menuItems = new ArrayList<Menu>();
menuItems = menuService.getAll();
for (Menu item: menuItems) {
if (item.getPageType() == 1 && item.getPageParent() > 0) {
menuItems.get(item.getPageParent() - 1).getPageChildren().add(item);
menuItems.remove(item);
}
}