web-dev-qa-db-ja.com

JSP / JSTLでURLをURLエンコードする方法は?

自分のサイト用にエンコードされた [〜#〜] url [〜#〜] を作成したい。たとえば、次のURLの場合: " http://google.com/index.html "

このURLをURLエンコードしてクライアントに提供します。

17
Abrah

JSPを使用しているので、 [〜#〜] jstl [〜#〜]scriptletsを使用しない を使用します。 JSTLタグ <c:url />と組み合わせて<c:param />

<c:url value="/yourClient" var="url">
  <c:param name="yourParamName" value="http://google.com/index.html" />
</c:url>

<a href="${url}">Link to your client</a>

これは次の結果になります:

<a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a>
35
Jasper de Vries

答えはUrlEncoder.encode()を使用することです。しかし、要点は、このメソッドはパーセンテージでエンコードされないということです。使用する:

Java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")
4
Mohsen Abasi

受け入れられた回答には、有効であるいくつかのJSPコードが欠落しています。

<c:url value="/yourClient" var="url">
  <c:param name="yourParamName" value="http://google.com/index.html" />
</c:url>

<a href="<c:out value='${url}'/>">Link to your client</a>

コメントが指摘したように、別のオプションはJavaScript encodeURIComponent メソッドを使用することです。

0