0

現在のページの URL を特定のパターンに一致させる方法。たとえば、現在の JSP ページの URL パターンに応じて、ページ上の 1 つの領域を表示または非表示にする if ステートメントを作成したいとします。

私が知っていることは、タグを使用する必要があることです:

<c:if test="the conditional test">Region</c:if>

たとえば、URL の末尾が /me/* と一致する場合にリージョンが表示されるようにしますか?

4

2 に答える 2

0

次のようなもの:

<c:set var="url" value="${pageContext.request.requestURL}" />

<c:set var="pathinfo" value="${fn:split(url, '/')}" />
<c:set var="pathnode" value="${pathinfo[pathinfo.length - 1]}" />

<c:if test="${pathnode == 'me'}">
   <p>Show this region</p>
</c:if>
于 2013-02-18T07:37:52.027 に答える
0

使用できます

HttpServletRequest#getRequestURI()

リクエストURIを取得します。の

getServletPath()

他の回答で示唆されているように、リクエストURI(エンドユーザーがブラウザーのアドレスバーに表示される)ではなく、サーブレットパス(JSP /サーブレットURLパターンの一致部分)を表すため、必ずしも役立つとは限りません。JSP が何らかのフロント コントローラ サーブレットによって転送された場合、ブラウザのアドレス バーに表示される仮想パスではなく、JSP 独自のパスが表示されます。

Page クラスに url プロパティと name プロパティがあるアプリケーション スコープ内の List で表されるメニューがあると仮定すると、

このコードを使用して現在のページ URL を検索し、タスクを実行できます。

<c:set var="active" value="${fn:endsWith(pageContext.request.requestURI, page.url)}" />
于 2013-02-18T05:35:55.893 に答える