Encode an URL with Play 2

后端 未结 3 2020
一个人的身影
一个人的身影 2021-02-07 14:40

How can I encode an URL in a template with Play 2?

I search a helper like this:

urlEncode doesn\'t work now
         


        
相关标签:
3条回答
  • 2021-02-07 15:06

    As of 2.1 you can use @helper.urlEncode

    <a href="@helper.urlEncode(foo)">my href is urlencoded</a>
    
    0 讨论(0)
  • 2021-02-07 15:10

    As I can see in linked ticked it will be resolved in Play 2.1

    Quickest solution is placing ,method(s) for that in you controller (Application.java in this sample)

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

    and then using it in the view as required at the moment:

    <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()?encoded=@Application.EncodeURL(routes.Application.someOtherAction())'>
         Url mixed normal+encoded</a>  <br/>
    
    0 讨论(0)
  • 2021-02-07 15:26

    Using @helper.urlEncode as in

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

    returned

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

    while what I needed/expected was

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

    I used @scott-izu this solution https://stackoverflow.com/a/9542781/99248

    0 讨论(0)
提交回复
热议问题