2012-09-01 16 views
11

के साथ एक यूआरएल एन्कोड करें मैं प्ले 2 के साथ टेम्पलेट में एक यूआरएल कैसे एन्कोड कर सकता हूं?प्ले 2

मैं इस तरह एक सहायक खोज:

<a href="@urlEncode(name)">urlEncode doesn't work now</a> 

मैं एक pull request पाया है, लेकिन इस असली खेल 2.0.3 रिलीज के साथ काम करने के लिए प्रतीत नहीं होता।

उत्तर

22

2,1 के रूप में आप का उपयोग कर सकते @helper.urlEncode

<a href="@helper.urlEncode(foo)">my href is urlencoded</a> 
13

मैं linked ticked में देख सकते हैं यह (इस नमूने में Application.java) प्ले 2.1

तेज समाधान दे रहा है, विधि (रों) है कि आप नियंत्रक में के लिए में सुलझा लिया जाएगा

public static String EncodeURL(String url) throws java.io.UnsupportedEncodingException { 
    url = java.net.URLEncoder.encode(url, "UTF-8"); 
    return url; 
} 

public static String EncodeURL(Call call) throws java.io.UnsupportedEncodingException { 
    return EncodeURL(call.toString()); 
} 

और उसके बाद के रूप में इस समय की आवश्यकता को ध्यान में रखते इसे प्रयोग:

<a href='@Application.EncodeURL(routes.Application.someAction())'> 
    Encoded url form router</a> <br/> 

<a href='@Application.EncodeURL("/this/is/url/to/encode")'> 
    Encoded url from string</a> <br/> 

<a href='@routes.Application.someAction()[email protected](routes.Application.someOtherAction())'> 
    Url mixed normal+encoded</a> <br/> 
+0

ठीक है, जिसने मुझे मदद की। – Sonson123

+0

java.net.URLEncoder एक बहुत बुरा नाम है क्योंकि इसे केवल क्वेरी पैरामीटर को एन्कोड करने के लिए उपयोग किया जाना चाहिए। लेकिन नाटक में इसे कैसे कार्यान्वित किया जा सकता है इसका सामान्य विचार सही लगता है। –

1

@ helper.urlEncode का प्रयोग के रूप में

में

@helper.urlEncode("http://www.giulio.ro/image/magictoolbox_cache/3bf842518f40ca6b8a10b619b8e02daf/6/2/621/thumb320x320/0804-427 - 255 lei.jpg")

http%3A%2F%2Fwww.giulio.ro%2Fimage%2Fmagictoolbox_cache%2F3bf842518f40ca6b8a10b619b8e02daf%2F6%2F2%2F621%2Fthumb320x320%2F0804-427+-+255+lei.jpg

लौटे जबकि मैं क्या जरूरत/उम्मीद

http://www.giulio.ro/image/magictoolbox_cache/3bf842518f40ca6b8a10b619b8e02daf/6/2/621/thumb320x320/0804-427%20-%20255%20lei.jpg

था

मैंने @ scott-izu का उपयोग इस समाधान https://stackoverflow.com/a/9542781/99248

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