Как конвертировать объекты аргументов JSP-запроса для html формы textarea? - PullRequest
1 голос
/ 28 февраля 2010

Я новичок в JSP и создаю форму с текстовой областью. Существует ли библиотека для преобразования текста из / в HTML-форму FOREX TEXTAREA, которая преобразует в / из объектов для правильного форматирования / анализа URL-адреса?

Например:

textarea (названный ta):

simple test with ampersand & in textarea

URL:

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

1 Ответ

4 голосов
/ 28 февраля 2010

Если вы используете скриптлеты, вы можете использовать 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...