有没有办法让JavaScript变量值成为JSTL可以使用的东西?

时间:2015-12-10 22:59:33

标签: javascript jsp jstl cq5

我很痛苦地意识到包含JSTL的JSP正在运行服务器端,而JavaScript运行在客户端。

我正在尝试检测用户是否正在访问来自中国的网站。我们已经在使用基于IP的Geolocation进行了Cookie,我可以使用以下JS访问该值:

<script>
        XY.isChina = document.cookie.indexOf('GeoIPCookie=GEOIP_COUNTRY_CODE=CN') > -1;
</script>

(XY是我们已经浮出的现有JS结构。适用于全局的东西。)

在此之后,我现在有一个真或假的变量。我已经验证了我可以在其他JSP文件中访问这个JS变量,因为我在标题中写了它,这显然包含在每个页面中。

我现在真正想做的事情就是这样:

<c:if test="${not hideFacebookIcon && XY.isChina === false}" >

这不会起作用,因为那是一个JavaScript变量。

有没有人对我如何能够破解某个真假变量有任何想法,所以我可以使用它与上面类似?我对使用的方法并不挑剔,但我不能使用像jQuery这样的额外库或像AJAX这样的东西。

1 个答案:

答案 0 :(得分:0)

在JSTL中执行此操作的方式如下:

<c:if test="${fn:indexOf(cookie.GeoIPCookie.value,'CN') > -1}">
    //do stuff
</c:if>

然而,当一个网站落后于Akamai时,这不起作用,所以解决方案必须是纯粹的JavaScript