2011-02-10 21 views
12

अगर मैं एक स्ट्रिंग "उत्पादन" है कि एक यूआरएल के बराबर होती है है:कैसे uri jsp में एक स्ट्रिंग एन्कोड करने के लिए?

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

<c:out value="${output}"/> 
का उपयोग कर:

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

jsp में , कैसे मुझे लगता है कि स्ट्रिंग में बदल जाएगा

? मुझे सी में किसी भी तरह से URLEncoder.encode (url) की आवश्यकता है।

उत्तर

15

यह मानक जेएसटीएल टैग/कार्यों के साथ सीधे संभव नहीं है। यहाँ <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> 

आप इसे और अधिक सफाई से ऐसा करने के लिए, एक ईएल समारोह बनाने चाहते हैं। this answer के नीचे आप एक बुनियादी किकऑफ उदाहरण पा सकते हैं। बाहर .. किसी भी विचार:

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

कुछ है कि वास्तव में ग में वहीं एक uri एनकोड करता है की तलाश के साथ

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

इस प्रयास करें: -

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

दी, यह केवल एक्सएमएल से विशेष वर्ण से बचें होगा।

+0

: आप के रूप में खत्म करना चाहते हैं? – tester

संबंधित मुद्दे