Play 2 でテンプレートの URL をエンコードするにはどうすればよいですか?
次のようなヘルパーを検索します。
<a href="@urlEncode(name)">urlEncode doesn't work now</a>
プル リクエストを見つけましたが、これは実際の play 2.0.3 リリースでは機能しないようです。
Play 2 でテンプレートの URL をエンコードするにはどうすればよいですか?
次のようなヘルパーを検索します。
<a href="@urlEncode(name)">urlEncode doesn't work now</a>
プル リクエストを見つけましたが、これは実際の play 2.0.3 リリースでは機能しないようです。
2.1以降、使用できます@helper.urlEncode
<a href="@helper.urlEncode(foo)">my href is urlencoded</a>
リンクされたチェックマークでわかるように、Play 2.1で解決されます
最も速い解決策は、コントローラーにそのためのメソッドを配置することです(Application.java
このサンプルでは)
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()?encoded=@Application.EncodeURL(routes.Application.someOtherAction())'>
Url mixed normal+encoded</a> <br/>