当Map里面的key 是Object(String,Integer,etc)等要通过以下的方式来得到
<#list testMap?keys as testKey>
< option value="${testKey}" >
${testMap.get(testKey)}
</option>
</#list>
或者使用:
<#list testMap.keySet() as testKey>
< option value="${testKey}" >
${testMap.get(testKey)}
</option>
</#list>
--------切记在webwork自带的freemarker中对Map中Key的定义为String类型(如果你想用${Map[key]}这样取值的话;如果用${Map.get(key}这样取值就可以用其他类型,如Map<Long,Object>),更高片本是否可以用其他类型本人未曾验证
--------------
<#list pager.map.get("m") as list>
<li<#if (list_index + 1) % 4 == 0> class="end"</#if>>
<a href="${base}${list.htmlFilePath}" class="productImage" target="_blank">
<img src="${base}${(list.productImageList[0].thumbnailProductImagePath)!systemConfig.defaultThumbnailProductImagePath}" alt="${list.name}" />
</a>
<div class="productTitle">
<#if (list.name?length < 28)>
<a href="${base}${list.htmlFilePath}" alt="${list.name}" target="_blank">${list.name}</a>
<#else>
<a href="${base}${list.htmlFilePath}" alt="${list.name}" target="_blank">${list.name[0..25]}...</a>
</#if>
</div>
<div class="productBottom">
<div class="productPrice">
<span class="price">${list.price?string(priceCurrencyFormat)}</span>
<span class="marketPrice">${list.marketPrice?string(priceCurrencyFormat)}</span>
</div>
<div class="productButton">
<input type="button" name="addCartItemButton" class="addCartItemButton addCartItem {id: '${list.id}'}" <#if list.isOutOfStock>value="缺货" disabled<#else>value="购买"</#if> hidefocus="true" />
<input type="button" name="addFavoriteButton" class="addFavoriteButton addFavorite {id: '${list.id}'}" value="收藏" hidefocus="true" />
</div>
</div>
</li>
</#list>
分享到:
相关推荐
@RequestMapping(/freemarker) @Controller public class FreemarkerController { //测试1 @RequestMapping(/test1) public String test1(Model model){ //向数据模型放数据 model.addAttribute(name,三年二班)...
3. **遍历Map**:使用`<#list>`指令,我们遍历`dataList`中的每一个Map对象,然后再次使用`<#list>`遍历Map中的每一个键值对。 4. **输出结果**:`${key}`和`${value}`分别代表Map中的键和对应的值,它们会被替换为...
5. **遍历map**:如果list中的元素是map,可以用`key`和`value`遍历键值对。 ```freemarker [0].properties as entry> 属性名: ${entry.key}, 值: ${entry.value} ``` 6. **反向遍历**:使用`reverse`指令...
本教程主要关注如何在FreeMarker中正确遍历Map。 首先,我们要明白在FreeMarker中直接遍历Map的特殊性。由于FreeMarker的设计,当你尝试直接在模板中遍历一个Map,它实际上会遍历Map的所有键(key),而不是值...
Freemarker 提供了多种循环遍历方式,包括遍历普通 List、遍历 Map 和遍历 List 的前面几项。遍历普通 List 的语法如下: ```html ... ``` 遍历 Map 的语法如下: ```html () as name> ${nameMap.get(name)} ``...
在Java应用中,Freemarker通过ModelAndView或者Map对象将数据传递到视图层。开发者可以在Java后端准备数据模型,然后传递给Freemarker模板,模板根据模型中的数据生成HTML输出。 4. **与Struts2集成** Struts2是...
在FreeMarker中,可以直接输出对象的值。例如,如果在数据模型中有一个名为`name`的对象,可以使用`${name}`将其值插入到模板中。 ### 2. 遍历 List 对于List类型的集合,可以使用`<#list>`指令来遍历。例如: ```...
- **Map对象**:Freemarker支持Java Map对象作为数据模型,键值对可以通过模板语法访问。 - ** Beans**:可以直接使用Java Bean对象,属性可以通过`.`操作符访问。 - **List和集合**:列表和集合可以通过`<#list>...
1. **数据模型(Model)**:这是你要生成XML所依赖的数据,可以是Java对象、Map或者其他集合类型。例如,你可以创建一个包含多个元素的列表,每个元素都有属性如`name`、`age`等。 ```java List<Person> persons = ...
FreeMarker会遍历模板,遇到每个占位符`${}`,它都会查找相应的值并替换。 8. **转换回Word文档**: 最后,使用Apache POI或类似的库,将生成的XML文件转换回Word文档(`.docx`格式)。这个过程通常涉及解析XML,...
4. **循环**:`<#list>` 控制循环,可以遍历数组、集合或Map。 5. **函数和方法调用**:FreeMarker支持调用Java对象的方法,如 `${object.method()}`。 三、最佳实践 1. **模板命名约定**:保持模板文件名与控制...
2. **数据模型(Data Model)**:数据模型是Freemarker用来渲染模板的数据源,它可以是Java对象、Map、List等任何形式。在Java中,通常通过`ModelAndView`或`Map`将数据传递给Freemarker。 3. **Freemarker指令...
接着,Servlet会加载一个名为`index.ftl`的Freemarker模板,将Map对象传递给模板。模板中可能包含一些条件判断和循环,用来动态生成HTML表格或其他展示数据的元素。 6. **部署与测试** 将项目打包成WAR文件,部署...
在Java代码中,你需要创建一个数据模型(通常是一个Map对象),其中键是模板中的变量名,值是对应的Java对象。然后将这个数据模型传递给Freemarker,它会根据数据模型中的内容解析模板。 3. **配置与初始化**: ...
- 数据模型:Freemarker与后台代码交互,获取数据并封装成Map对象,这些对象在模板中通过键值对访问。 - 模板:使用FTL(Freemarker Template Language)编写,包含静态文本和变量/指令。 4. **模板指令** - `#...
数据模型可以是Java对象、集合、Map等,它们通过模板变量在模板中引用。 3. **模板语言**:FreeMarker的模板语言由一系列控制结构(如条件语句、循环)、表达式(用于访问数据模型中的属性)和函数组成。例如,`...
-- 使用Freemarker遍历JSON数组 --> ${item.property} <!-- 示例HTML截取 --> ${truncateHtml(originalHtml, 100)} ``` 这个模板展示了如何展示JSON数据中的标题和描述,以及如何遍历JSON数组并将元素...
2. 数据模型设置:通过`ModelAndView`或`Map`将Java对象传递到视图,供Freemarker使用。 3. 视图解析:配置`ViewResolver`,例如`FreemarkerViewResolver`,确定模板路径和渲染逻辑。 四、Freemarker高级特性 1. ...
数据模型可以是任何形式的Java对象,包括简单类型、集合、Map等。这些对象可以通过模板变量访问,并用于生成输出。 3. **指令**:FreeMarker提供了一系列指令,用于控制模板的逻辑,比如`#if`用于条件判断,`#...