将JS逻辑转换为FTL

时间:2013-04-12 08:52:39

标签: javascript freemarker

我有一个JS代码,我想在FTL上转换,以便用户无法查看它背后的逻辑。这可能吗?

我很喜欢使用<#if>和< #assid>对于逻辑,但不知道如何开始。 找到任何其他资源,看起来Freemarker文档很痛苦。

    <script type="text/javascript">
    var ref = document.referrer,
        currentPageURL = document.URL,
        expectedURL = "http://127.0.0.1";

    function getUrlVars(href)
    {
        var vars = [], hash;
        var hashes = href.slice(href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }

    var googleURL = ref.match(/^https?:\/\/([^\/]+\.)?google\.com(\/|$)/i);
    if ((googleURL && (currentPageURL == expectedURL)) {
        //do stuff.
    }
    </script>

1 个答案:

答案 0 :(得分:1)

好吧,getUrlVars似乎没有在任何地方使用,但如果您需要请求参数,可以使用${RequestParameters['test']}获取,引荐来源和当前网址不可用,因此您需要发送它们从后端代码到模板引擎。那个条件只是一个简单的<#if $referrerFromJava?matches("^https?:\/\/([^\/]+\.)?google\.com(\/|$)">。但是如果你把所有这些都转移到检查服务器,只需在后端代码中执行并将变量发送到ftl,类似于${isFromGoogle}