2013-12-16 42 views
-3

----代码JS ----FreeMarker和阵列如何将项目指定给特定位置

 var arr = []; 
arr[0] = "Jani"; 
arr[1] = "Hege"; 
arr[2] = "Stale"; 
arr[3] = "Kai Jim"; 
arr[4] = "Borge"; 

可以做到这一点在freemarker中,你可以教我一个例子

<#macro cuenta d > 

<#assign posicion=0> 

<#assign arregloCuenta=[]> 

<#list args.array?split(",") as value> 

<#assign posicion=posicion+1> 

<#if d.properties["bchile:tipodoc"]?exists > 

<#if d.properties["bchile:tipodoc"] == value> 

<#assign arregloCuenta=["juan"]> 

<#assign arregloCuenta= arregloCuenta + ["felipe"]> ${args.array[0]} ${posicion} ${arregloCuenta[1]} </#if> </#if> </#list> </#macro> 
+0

完整的入门教我一个例子吗?这不是你的Uni班或自由职业者。你必须告诉我们你尝试过什么-1 – Makky

+0

交感神经 – user3108249

+0

我已经尝试了这一点,其中的各种已经删除 – user3108249

回答

4

从FreeMarker的常见问题:

FreeMarker的模板语言不支持序列/散列的修改。它用于显示已计算的内容,而不是用于计算数据。保持模板简单。但不要放弃,你会在下面看到一些建议和技巧。

多一点如下:

例如,你想要一些非常聪明的方式,它的算法需要您创建和写一些序列变量显示关键字索引。那么你应该做这样的事情(丑陋的情况下,有丑陋的解决方案...):

<#assign calculatedResults = 
'com.example.foo.SmartKeywordIndexHelper'?new().calculate(keywords)> 
<#-- some simple algorithms comes here, like: --> 
<ul> 
    <#list calculatedResults as kw> 
    <li><a href="${kw.link}">${kw.word}</a> 
    </#list> 
</ul> 

也就是说,你从模板为Java代码移出演示任务的复杂的部分。请注意,它不会影响数据模型,因此演示文稿仍与其他应用程序逻辑保持分离。当然,缺点是模板作者需要Java程序员的帮助,但对于可能需要的复杂算法。

另外它说比尝试使用序列连接和序列切片更好,比这个技巧更好。

对于切片和联接你能想到的东西,如:

seq[0..pos-1] + ["New element"] + seq[pos+1..] 

您可以阅读http://freemarker.org/docs/app_faq.html#faq_modify_seq_and_map

相关问题