我的页面上有这个链接(第1页):
<a href="@{Controller.action1().secure()}">Link1</a>
Run Code Online (Sandbox Code Playgroud)
通过https将我带到页面(第2页).如何在第2页上建立一个链接,让我从https回到http?我认为@@ notation可以解决这个问题:
<a href="@@{Controller.action2()}">Link2</a>
Run Code Online (Sandbox Code Playgroud)
但它没有,action2也通过https调用.
Play 没有与 secure() 相反的方法,但您可以使用自定义 JavaExtension 自己实现它:
import play.templates.JavaExtensions;
import play.mvc.Router.ActionDefinition;
public class MyExtensions extends play.templates.JavaExtensions {
public static String unsecure(ActionDefinition action) {
if (!action.url.contains("http://") && !action.url.contains("https://")) {
action.absolute();
}
action.url = action.url.replace("https:", "http:");
return action.url;
}
Run Code Online (Sandbox Code Playgroud)
自定义扩展方法应返回String,并且参数将保存增强对象,如文档所示。该代码与安全方法的代码几乎相同。
通过这种方法,您现在可以使用:
href="@{Controller.action2().unsecure()}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |