1

私は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
4

4 に答える 4

0

最上位ノードでエラーをキャッチし、それをユーザー ディスプレイに渡すことができる try... catch ブロックを使用する必要があります。try... catch のドキュメントを読んでください:)

于 2013-04-12T22:31:34.223 に答える
0

getParent メソッド定義内に if ステートメントを追加し、getParent 対象の Node が最上位ノードである場合に新しい例外をスローするという条件を追加します。

あなたが初心者なら、「try-catch」の代わりにこれで十分だと思います。

于 2013-04-12T22:33:49.280 に答える