私はJavaが初めてなので、ここで我慢してください。ページの親を取得して返すクラスがあります。ノードの最上部に移動すると、null ポインター例外が発生します。これは、for(Page page = to........最上部のノードには親がないため、その理由を理解しています。方法コードがエラーを生成するのを防ぎ、ユーザーが最上位ノードに移動した場合にメッセージを適切に表示しますか?
クラスコード:
public class Pages {
public static List<Page> getPath(Page from, Page to) {
if (from == null || to == null) throw new IllegalArgumentException();
List<Page> path = new ArrayList<Page>();
for (Page page = to.getParent(), last = from.getParent(); page != null && !(page.getPath().equals(last.getPath())); page = page.getParent())
path.add(page);
Collections.reverse(path);
return path.contains(from) ? path : null;
}
}
JSP コード:
Page rootPage = resourceResolver.adaptTo(PageManager.class).getPage(properties.get("rootNode",Page)currentPage).getPath()));
List<Page> listPages = Pages.getPath(rootPage, currentPage);
for (Page showContent : listPages) {
%>
<li><a href="#">listPages.getDisplayTitle(showContent)) %></a></li>
<%
} //end page for loop