8

現在の URL が /app.jsp?filter=10&sort=name.

次のようなリンクを含める必要がある JSP のページネーション コンポーネントがあります
/app.jsp?filter=10&sort=name&page=xxx

現在の URL に新しいパラメータを追加して、JSP で有効な URL を作成するにはどうすればよいですか? 私は JSP で Java コードを使用したくありませ
/app.jsp?filter=10&sort=name&?&page=xxx/app.jsp?&page=xxx

4

3 に答える 3

12

わかりました、答えが見つかりました。最初の問題は、URL の現在のすべてのパラメーターを保持し、パラメーターのみを変更する必要があるpageことです。これを行うには、現在のすべてのパラメーターを繰り返し処理し、変更したくないパラメーターを URL に追加する必要があります。次に、変更または追加するパラメーターを追加しました。だから私はこのような解決策になりました:

<c:url var="nextUrl" value="">
    <c:forEach items="${param}" var="entry">
        <c:if test="${entry.key != 'page'}">
            <c:param name="${entry.key}" value="${entry.value}" />
        </c:if>
    </c:forEach>
    <c:param name="page" value="${some calculation}" />
</c:url>

pageこれにより、リクエストのパラメーターに関係なく、きれいできれいな URL が作成されます。このアプローチのボーナスは、URL を何でもかまいません。

于 2013-04-05T08:50:44.620 に答える
9
<c:url var="myURL" value="/app.jsp">
   <c:param name="filter" value="10"/>
   <c:param name="sort" value="name"/>
</c:url>

URLを表示するには、次のようなことができます

<a href="${myURL}">Your URL Text</a>
于 2013-03-29T18:46:41.150 に答える
2

現在の URL に基づいて新しい URL を作成するには、まずオブジェクトから現在の URL を取得するrequest必要があります。requestJSP 内のオブジェクトにアクセスするには、JSP 式言語で定義されたpageContext 暗黙的なオブジェクトを使用します。

${pageContext.request.requestURL}  

JSP ページで URL を構成する簡単な例を次に示します。

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
    <title>Test Page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <h1>Testing URL construction</h1>
    <c:choose>
        <c:when test="${pageContext.request.queryString != null}">
            <a href="${pageContext.request.requestURL}?${pageContext.request.queryString}&page=xxx">Go to page xxx</a>
        </c:when>
        <c:otherwise>
            <a href="${pageContext.request.requestURL}?page=xxx">Go to page xxx</a>
        </c:otherwise>
    </c:choose>
</body>
</html>


このソリューションを使用すると、現在の URL にクエリ文字列が含まれているかどうかに応じてURL を作成できます。したがって、それぞれ次のいずれかを追加します

?${pageContext.request.queryString}&page=xxx

あるいは単に

?page=xxx

現在の URL に。

クエリ文字列のチェックを実装するために、JSTLExpression Languageが使用されました。メソッドを使用getRequestURL()して現在の URL を取得しました。

于 2013-03-29T22:06:39.763 に答える