1

私はJSPを初めて使用し、テキスト領域を含むフォームを生成します。URLを適切にフォーマット/解析するためにエンティティとの間でテキストを変換するHTMLのFORMTEXTAREAとの間でテキストを変換するライブラリはありますか?

例えば:

textarea(taという名前):

simple test with ampersand & in textarea

url:

http://.../myapp.jsp?ta=simple+test+with+ampersand+%26+in+textarea
4

1 に答える 1

4

スクリプトレットを使用している場合は、URLEncoder.encode(String string、String encoding)を使用して、URLで使用するために文字列を安全にエンコードできます。UnsupportedEncodingExceptionがスローされるため、必ずキャッチしてください。文字列をエンコードしてドキュメントの本文として表示するJSPの例を次に示します。

<%@ page language="java"
  import="java.net.URLEncoder"
  contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%

String encoded = null;
try {
    encoded = URLEncoder.encode("simple test with ampersand & in textarea", "UTF-8");
} catch (Exception e) {

}

%>
<html>
  <head>
    <title>MyTitle</title>
  </head>
  <body>
    <%=encoded%>
  </body>
</html>

JSTL、この場合は特に<c:url>コンテンツを自動的にエンコードするタグを使用することをお勧めします。たとえば、質問で言及したエンコードされた文字列URLを取得するには、次のようにします。

<c:url var="myEncodedURL" value="http://.../myapp.jsp">
  <c:param name="ta" value="simple test with ampersand & in textarea"/>
</c:url>

次に、式を使用してアクセスできます${myEncodedURL}。現在JSTLを使用していない場合は、学習曲線が必要です。taglibを設定し、インポートしてから使用する必要があります。このJSTLタグをdeveloperworksで使用する方法の詳細を見ることができます。

于 2010-02-28T18:03:41.647 に答える