如何建立一个从https到http的链接?

时间:2012-02-27 01:29:56

标签: playframework

我的页面上有此链接(第1页):

<a href="@{Controller.action1().secure()}">Link1</a> 

通过https将我带到页面(第2页)。如何在第2页上建立一个链接,让我从https回到http?我认为@@ notation可以解决问题:

<a href="@@{Controller.action2()}">Link2</a>

但事实并非如此,还会通过https调用action2。

1 个答案:

答案 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()}"