0 0

freemarker嵌套循环怎么写5

     下面是JSP页面代码
<c:forEach var="each" items="${typeProList}" begin="0" end="0">
     <c:forEach var="product" items="${each.proList}" begin="0" end="1">
         <div class="bot_right_pro_1">
   <div class="pro_1_1"><a href="${pageContext.request.contextPath }/s/product.shtml?method=productinfo&proid=${product.id }"><img src="${pageContext.request.contextPath }<%=SConstants.CEM_UPLOAD_PRODUCT_PATH %>${product.picurl }" title="${product.name }" width="90" height="90"/></div>
   <div class="pro_title"><a href="${pageContext.request.contextPath }/s/product.shtml?method=productinfo&proid=${product.id }" title="${product.name}"><strong><shopping:TagUtil type="string" begin="0" end="5" target="${product.name}"/></strong></a></div>
   <div class="pro_title"><img src="${pageContext.request.contextPath}/images/huigou/icon_2.jpg" /><strong><span class="red">${product.hmprice }元</span></strong></div>
</div>
</c:forEach>
</c:forEach>
                   这是我根据以上写的ftl(freemarker 标签写的)
  <#if typeProList?exists>
         <#list typeProList[0..0] as each>
            <#list each.proList[0..1] as product>
         <div class="bot_right_pro_1">
   <div class="pro_1_1"><a href="/huigou/s/product.shtml?method=productinfo&proid=${product.id }"><img src="/huigou<%=SConstants.CEM_UPLOAD_PRODUCT_PATH %>${product.picurl }" title="${product.name }" width="90" height="90"/></div>
   <div class="pro_title"><a href="/huigou/s/product.shtml?method=productinfo&proid=${product.id }" title="${product.name}"><strong><shopping:TagUtil type="string" begin="0" end="5" target="${product.name}"/></strong></a></div>
   <div class="pro_title"><img src="/huigou/images/huigou/icon_2.jpg" /><strong><span class="red">${product.hmprice }元</span></strong></div>
</div>
</#list>
  </#list>
   </#if>


但是报错:list each.proList[0..1] as product [on line 24, column 37 in probottom.ftl]

问题补充:
蔡华江 写道
  <#list each.proList[0..1] as product>
改为
  <#list (each.proList)[0..1] as product>
试试



2010-01-21 11:10:37 [freemarker.runtime]-[ERROR]
on line 24, column 59 in probottom.ftl
Left side index of range out of bounds, is 0, but the sequence has only 0 element(s) (note that indices are 0 based, and ranges are inclusive).
The problematic instruction:
----------
==> list (each.proList)[0..1] as product [on line 24, column 37 in probottom.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateException: on line 24, column 59 in probottom.ftl
Left side index of range out of bounds, is 0, but the sequence has only 0 element(s) (note that indices are 0 based, and ranges are inclusive).
2010年1月21日 09:57

2个答案 按时间排序 按投票排序

0 0

采纳的答案

  <#list each.proList[0..1] as product>
判断null啊

2010年1月25日 18:07
0 0

  <#list each.proList[0..1] as product>
改为
  <#list (each.proList)[0..1] as product>
试试

2010年1月21日 10:56

相关推荐

    SpringBoot_Freemarker生成Word_多个表格+两层嵌套循环

    SpringBoot_Freemarker生成Word_多个表格+两层嵌套循环; 步骤说明: 1.用Microsoft Office Word打开word原件;将文档中需要动态生成的内容,替换为属性名 ${name} 2.另存为,选择保存类型Word 2003 XML 文档(*....

    FreeMarker指令学习

    本篇文章将深入讲解FreeMarker的指令学习,包括其基本概念、主要指令以及实际应用。 一、FreeMarker的基本概念 1. 模板:FreeMarker的工作核心是模板,模板是一份HTML或XML文件,其中包含静态文本和FreeMarker...

    Freemarker 遍历Map数据

    @RequestMapping(/freemarker) @Controller public class FreemarkerController { //测试1 @RequestMapping(/test1) public String test1(Model model){ //向数据模型放数据 model.addAttribute(name,三年二班)...

    freemarker中文学习资料

    - **循环结构**:`&lt;#list&gt;` 可以遍历集合或数组,实现循环输出。 - **注释**:`&lt;!--...--&gt;` 用于在模板中添加注释,不会出现在生成的输出中。 - **控制流指令**:如 `&lt;#assign&gt;` 分配变量,`&lt;#escape&gt;` 进行字符...

    FreeMarker概述2008

    2. **更强大的模板控制**:FreeMarker的宏功能更为强大,允许局部变量、递归宏调用、缺省参数和嵌套体内容。同时,宏可以作为变量或参数传递,增加了模板的灵活性。 3. **命名空间**:命名空间支持多个变量命名空间...

    freemarker 2.3.18 中文手册

    3. **指令(Directives)**:Freemarker提供了一系列指令,如`&lt;#include&gt;`用于包含其他模板,`&lt;#macro&gt;`定义可重用的代码块,`&lt;#nested&gt;`用于处理嵌套模板。 4. **内置函数**:Freemarker内建了一些方便的函数,如`...

    freemarker概述

    - **常用指令**: 包括但不限于`include`、`if/elseif/else`、循环结构等。 - **变量管理**: 在模板中可以创建和修改变量。 - **复杂表达式**: 可以在几乎任何地方使用复杂的表达式来指定值。 - **宏定义**: 支持...

    java使用freemarker模板技术导出word

    在实际开发中,你可能还需要处理更复杂的情况,比如嵌套的循环和条件语句,以及对 Word 特有的格式化和样式的支持。Apache POI 提供了对 Word 格式控制的接口,可以结合 FreeMarker 使用,以实现更精细的文档格式...

    FreeMarker中文版文档1

    此外,FreeMarker支持嵌套的对象和递归的数据结构。 1.4 模板一览 模板文件通常使用`.ftl`扩展名,其中包含HTML代码和其他FreeMarker指令。FreeMarker提供了多种控制结构,如条件语句(`&lt;#if&gt;`, `&lt;#else&gt;`)、循环(`...

    java freemark list嵌套导出word

    在Java应用中,使用FreeMarker导出Word文档时,经常会遇到列表(list)的嵌套问题,这涉及到数据模型构建、模板设计以及Word文档的格式化。下面我们将详细探讨这个主题。 1. **FreeMarker简介** FreeMarker是一个...

    java freemarker导出word -包含多张图片导出

    在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...

    FreeMarker入门手册

    - `foreach` 循环:`&lt;#list items as item&gt;`...`&lt;/#list&gt;`。 - **函数和方法调用**:FreeMarker支持内置函数和自定义方法调用,如`length()`、`substring()`等。 - **逻辑运算符**:包括 `==`、`!=`、`、`&gt;`、`、...

    freemarker教程

    3. 控制结构:除了基本的条件语句和循环,Freemarker还有`&lt;#nested&gt;`用于嵌套模板,`&lt;#tolog&gt;`打印调试信息,以及`&lt;#function&gt;`定义自定义函数。 三、Freemarker进阶 1. 自定义指令:通过继承`...

    Freemarker中List的应用

    9. **列表嵌套**:Freemarker支持多层列表的遍历,这对于展示复杂数据结构非常有用。 10. **自定义迭代器**:除了内置的`&lt;#list&gt;`,还可以自定义迭代器实现更复杂的逻辑。 在实际开发中,理解并熟练运用这些知识点...

    FreeMarker中文参考手册以及jar包

    2. **控制结构**:包括条件语句(`&lt;#if&gt;`, `&lt;#else&gt;`, `&lt;#elseif&gt;`)和循环(`&lt;#list&gt;`,`&lt;#foreach&gt;`)。这些结构允许根据条件展示不同的内容或遍历数据集。 3. **指令**:如`&lt;#include&gt;`用于包含其他模板,`...

    freemarker语法知识

    它们用于控制模板的逻辑,例如循环(`#list`)、条件判断(`#if`,`#else`等)、包含其他模板(`#include`)等。指令可以是开始标签、结束标签或空标签形式,且需要正确嵌套,如同XML。 例如,以下是一个简单的...

    FreeMarker模板语言API

    - `#foreach`:循环遍历集合,常见的用法是遍历数组或列表。 - `#set`:设置变量,可以在模板内部定义临时变量。 - `#include`:包含其他模板文件,实现模板的复用。 2. **模板指令** - `#assign`:类似于`#set...

Global site tag (gtag.js) - Google Analytics