3

現在のURLから現在参照されているファイル名を差し引いたものを取得したいと思います。ソリューションがJSPであるかCQ5であるかは関係ありません。しかし、私はそれに慣れるために後者をもっと使用しようとしています。

私はこのドキュメントを使用していますが、役に立ちません。CQ5ドキュメント。私が見つけた例では、現在の完全なパスを取得していますが、ファイル名を削除する方法がわかりません。

<% Page containingPage = pageManager.getContainingPage(resourceResolver.getResource(currentNode.getPath()));
%>
<a href="<%=containingPage.getPath() %>.html">Profile</a>
4

3 に答える 3

6

次のリソースURLにアクセスしていると仮定します。

/ content / mywebsite / english / mynode

現在のノードが「mynode」であり、現在のノードなしでurlの一部を取得したい場合。

次に、最も簡単な方法は、currentNode(mynode)でgetParent()を呼び出すことです。

したがって、このように親のパスを取得できます。

currentNode.getParent()。getPath()は、「/ content / mywebsite /english/」を提供します

完全なコード:

    <% Page containingPage = pageManager.getContainingPage(resourceResolver.getResource(currentNode.getParent().getPath())); 
%>
<a href="<%=containingPage.getPath() %>.html">Profile</a>
于 2012-05-11T19:46:22.683 に答える
6

はるかに単純なアプローチ。

currentPageオブジェクトを使用して、親ページを取得できます。

コードは次のようになります

<a href="<%=currentPage.getParent().getPath()%>.html">Profile</a>

このコードの使用中にエラーが発生した場合は、ページにglobal.jspファイルが含まれているかどうかを確認してください。以下に示すもの。

<%@include file="/libs/foundation/global.jsp"%>
于 2012-05-16T17:45:26.087 に答える
-1

CQ5については何も知りませんがgetPath()、通常のJava文字列を返すので、最後のスラッシュまでプレフィックスを付けることができると思います。これは、文字列の場合は。sで実行できますs.substring(0, s.lastIndexOf('/')+1)。あなたがそれをワンライナーにする必要があるならば、あなたはそうすることができますcontainingPage.getPath().substring(0, containingPage.getPath().lastIndexOf('/')+1)

于 2012-05-08T16:30:18.317 に答える