【问题标题】:How to uri encode a string in jsp?如何在jsp中对字符串进行uri编码?
【发布时间】:2011-06-24 13:42:49
【问题描述】:

如果我有一个等于 url 的字符串“输出”:

${output} = "/testing/method/thing.do?foo=testing&bar=foo"

在jsp中,如何将该字符串转换为:

%2Ftesting%2Fmethod%2Fthing.do%3Ffoo%3Dtesting%26bar%3Dfoo

使用

<c:out value="${output}"/>

? 我需要以某种方式在 c:out 中使用 URLEncoder.encode(url)。

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

    使用标准 JSTL 标记/函数无法直接实现。这是在&lt;c:url&gt; 的帮助下进行的破解:

    <c:url var="url" value=""><c:param name="output" value="${output}" /></c:url>
    <c:set var="url" value="${fn:substringAfter(url, '=')}" />
    <p>URL-encoded component: ${url}</p>
    

    如果您想更简洁地执行此操作,请创建一个 EL 函数。在this answer 的底部,您可以找到一个基本的启动示例。你希望最终成为:

    <p>URL-encoded component: ${my:urlEncode(output, 'UTF-8')}</p>
    

    public static String urlEncode(String value, String charset) throws UnsupportedEncodingException {
        return URLEncoder.encode(value, charset);
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:-

      <c:out value="${output}" escapeXml="true" />
      

      当然,这只会从 XML 中转义特殊字符。

      【讨论】:

      • 在 c:out 中寻找实际进行 uri 编码的东西。有什么想法吗?
      猜你喜欢
      • 2013-10-08
      • 2014-03-27
      • 2011-10-06
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 2012-08-23
      • 1970-01-01
      相关资源
      最近更新 更多