2011-02-10 44 views
12

,如果我有一個字符串 「輸出」,等於一個網址:如何uri在jsp中編碼一個字符串?

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

在jsp 我將如何轉換該字符串爲:

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

使用

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

? 我需要URLEncoder.encode(url)在c:out中。

回答

15

標準JSTL標籤/函數不是直接可能的。下面是與<c:url>幫助黑客攻擊:

<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); 
} 
0

試試這個: -

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

當然,這隻會從XML轉義特殊字符。

+0

尋找的東西在C,實際上做了URI編碼在那裏:出..任何想法? – tester 2011-02-10 02:13:56

相關問題