我的页面上有此链接(第1页):
<a href="@{Controller.action1().secure()}">Link1</a>
通过https将我带到页面(第2页)。如何在第2页上建立一个链接,让我从https回到http?我认为@@ notation可以解决问题:
<a href="@@{Controller.action2()}">Link2</a>
但事实并非如此,还会通过https调用action2。
答案 0 :(得分:3)
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;
}
自定义扩展方法应返回String
,参数将保留增强对象as the documentation suggests。代码几乎与secure method's code相同。
使用此方法,您现在可以使用:
href="@{Controller.action2().unsecure()}"